Exemplo de adjacência de pixels. Fonte: Jackson Gomes.
Exemplo de aplicação de filtro de aguçamento e de suavização. Fonte: COVAP-UTFPR
Esquema geral da filtragem espacial. Fonte: visaocomputacional.com.br.
Operação de correlação onde as partes sombreadas são o primeiro elemento de saída, bem como os elementos tensores de entrada e kernel usados para o cálculo de saída. Fonte: Deep Dive into Deep Learning.
Convolução é a base para as CNNs,
redes neurais convolucionais,
e para deep learning.
Exemplo de aplicação de filtro espacial. Fonte: Cezanne Camacho.
Exemplo de convolução. Fonte: Austing Walters.
Convolução nas bordas de uma imagem. Fonte: Cezanne Camacho.
Exemplo de convolução. Fonte: Austing Walters.
import cv2
import numpy as np
# Carregar a imagem em escala de cinza
imagem = cv2.imread("exemplo.jpg", cv2.IMREAD_GRAYSCALE)
# Definir um kernel de suavização (média)
kernel = np.ones((3,3), np.float32) / 9 # Normalizamos dividindo por 9
# Aplicar a convolução com o kernel
imagem_suavizada = cv2.filter2D(imagem, -1, kernel)
# Mostrar as imagens original e suavizada
cv2.imshow("Original", imagem)
cv2.imshow("Suavizada", imagem_suavizada)
cv2.waitKey(0)
cv2.destroyAllWindows()
Exemplo de kernel de média 15 x 15 sobre uma imagem capturada pelo telescópio Hubble. Note que o desfoque ajuda a dar mais ênfase aos objetos maiores. A terceira imagem é o resultado de thresholding. Fonte: COVAP-UTFPR.
Exemplo de aplicação de filtro de média.
Filtros quadrados de tamanhos 3, 5, 9, 15 e 35. Fonte: COVAP-UTFPR
Exemplo de remoção de ruído sal e pimenta em imagem de raio X de uma placa de circuito por filtro de mediana. Fonte: COVAP-UTFPR.
Aplicação de filtro gaussiano de diferentes tamanhos. Fonte: Slide Serve.
Imagem Original (identidade)
Detecção de Borda
Exemplo de filtros espaciais. Fonte: COVAP-UTFPR.
Filtro Laplaciano
Detecta variação de intensidade (bordas).
Filtro de Sobel
Estima gradientes em direções horizontal e vertical.
Demonstração em https://setosa.io/ev/image-kernels/
Tipo | Operação principal | Exemplo |
---|---|---|
Linear | Média, Gaussiano | |
Não‑linear | Função de decisão sobre vizinhança | Max, Mediana |
Dilatação
Erosão
Ilustração de operação de dilatação e erosão via filtros espaciais. Fonte: Penny Xu.
Atividade recomendada: Leitura das seções 3.4 a 3.7.
- **Distinguir** entre filtros lineares e não‑lineares, reconhecendo suas respectivas aplicações práticas.
* Em operações morfológicas: - *Erosão*: $I_{\text{eros}}(x,y)=\min_{(i,j)\in\mathcal{N}(x,y)} I(x+i, y+j)$. - *Dilatação*: $I_{\text{dil}}(x,y)=\max_{(i,j)\in\mathcal{N}(x,y)} I(x+i, y+j)$.
| Tipo | Vizinhos considerados | Número de vizinhos | |------|-----------------------|--------------------| | **4‑conectividade** | Norte, Sul, Leste, Oeste | 4 | | **8‑conectividade** | 4‑conectividade + diagonais (NE, SE, SW, NW) | 8 |
* Para uma intuição visual veja também: [Convolution Visualizer](https://ezyang.github.io/convolution-visualizer/index.html).
- **Separabilidade**: se $H = a\,b^T$, o cálculo reduz de $\mathcal{O}(N^2)$ para $\mathcal{O}(N)$.
- **Cuidado com bordas**: modos de extensão (replicação, reflexão, zero‑padding).
* $G(x) = \frac{1}{\sigma\sqrt{2\pi}}e^{-\frac{(x-\mu)^2}{2\sigma^2}}\qquad$ Aproximação: $\quad G'(x) = e^{-\frac{(x-\mu)^2}{2\sigma^2}}$
- Quais são as principais diferenças entre filtros **passa‑baixa**, **passa‑alta** e **realce de bordas** em termos de impacto visual na imagem?
- Em que situações um **filtro Gaussiano** é preferível a uma média simples, mesmo considerando o **custo computacional** adicional?