ciência da computação tópicos processamento digital de imagens€¦ · operações de...
TRANSCRIPT
Processamento Digital de Imagens
Operações de Convolução
Prof. Sergio Ribeiro
Ciência da Computação Tópicos
� Operações Orientadas a Vizinhança� Operações de Convolução com Máscaras� Detecção de Pontos Isolados� Detecção de Linhas� Detecção de Bordas
Processamento Digital de Imagens 2
Operações Orientadas a Vizinhança
� Operações lógicas e aritméticas orientadas a vizinhança utilizam o conceito de convoluçãocom máscaras (janelas ou templates).
� Seja uma subárea de uma imagem:
Processamento Digital de Imagens
onde Z1,...,Z9 são os valoresde tons de cinza de cada pixel.
Z1 Z2 Z3
Z4 Z5 Z6
Z7 Z8 Z9
� Seja uma máscara 3x3 de coeficientes genéricos w1,...,w9: w1 w2 w3
w4 w5 w6
w7 w8 w93
Operações Orientadas a Vizinhança
� A máscara percorrerá a imagem desde o canto superior esquerdo até o canto inferior direito.
� A cada posição relativa da máscara sobre a imagem o pixel central da subimagem será substituído (em uma imagem-destino) por um valor:
Processamento Digital de Imagens
= Σ wi.zii=1
9
� Operações de convolução com máscaras sãoamplamente utilizadas no processamento de imagens.
R = w1.z1 + w2.z2 + ... + w9.z9
4
Operações Orientadas a Vizinhança
Processamento Digital de Imagens
� Valores apropriados dos coeficientes w1,...,w9possibilita uma grande variedade de operações:� Redução de ruído� Afinamento� Detecção de características da imagem, etc.
� Entretanto, operação de convolução com máscaras exige grande esforço computacional.� Ex: máscara 3x3 sobre imagem 512x512 exige 9
multiplicações e 8 adições para cada pixel, totalizando 2.359.296 de multiplicações e 2.097.152 de adições.
5
Operações Orientadas a Vizinhança
� Por esta razão, e devido à simplicidade de seimplementar multiplicadores, somadores eregistradores, há diversas implementações deconvolução com máscaras em hardware.
� Operação orientadas a vizinhança sãocomuns em filtragem espacial, como serávisto posteriormente.
Processamento Digital de Imagens 6
Operações de Convoluçãocom Máscaras
Processamento Digital de Imagens
� Inúmeras operações úteis em PDI são efetuadas a partir de um mesmo conceito básico ⇒ o de convolução com máscaras.
� Será visto agora em mais detalhes o funcionamento das operações de convolução.
� Serão mostrados alguns exemplos típicos de máscaras e os resultados que elas produzem ao serem aplicadas em imagens monocromáticas.
7
Operações de Convoluçãocom Máscaras
� Operação de convolução unidimensional entre dois vetores A e B (A*B) corresponde a umconjunto de somas de produtos entre os valores de A e B.
� Inicialmente o vetor B é espelhado e, após cada soma de produtos, é deslocado espacialmente de uma posição.
� O vetor B é, de fato, a máscara usada na operação de convolução.
Processamento Digital de Imagens 8
Operações de Convoluçãocom Máscaras
� Ex: segue abaixo os passos para realizar a convolução do vetor A = {0,1,2,3,2,1,0} com o vetor B = {1,3,-1}.
1. Inicialmente, o vetor B é espelhado e alinhado com o primeiro valor de A. O resultado da convolução é (0×(-1))+(0×3)+(1×1)=1 (valores em branco assumidos como zero) e é colocado em A*B na posição do centro de B.
Processamento Digital de Imagens
A 0 1 2 3 2 1 0
B -1 3 1
A*B 1
9
Operações de Convoluçãocom Máscaras
2. O conjunto B é deslocado de uma posição. O resultado da convolução A*B é (0×(-1))+(1×3)+(2×1)=5.
Processamento Digital de Imagens
A 0 1 2 3 2 1 0
B -1 3 1
A*B 1 5
3. O conjunto B é deslocado de uma posição. O resultado da convolução A*B é (1×(-1))+(2×3)+(3×1)=8.
A 0 1 2 3 2 1 0
B -1 3 1
A*B 1 5 8
10
Operações de Convoluçãocom Máscaras
Processamento Digital de Imagens
4. O conjunto B é deslocado de uma posição. O resultado da convolução A*B é (2×(-1))+(3×3)+(2×1)=9.
A 0 1 2 3 2 1 0
B -1 3 1
A*B 1 5 8 9
5. O conjunto B é deslocado de uma posição. O resultado da convolução A*B é (3×(-1))+(2×3)+(1×1)=4.
A 0 1 2 3 2 1 0
B -1 3 1
A*B 1 5 8 9 4
11
Operações de Convoluçãocom Máscaras
Processamento Digital de Imagens
6. O conjunto B é deslocado de uma posição. O resultado da convolução A*B é (2×(-1))+(1×3)+(0×1)=1.
A 0 1 2 3 2 1 0
B -1 3 1
A*B 1 5 8 9 4 1
7. O conjunto B é deslocado de uma posição. O resultado da convolução A*B é (1×(-1))+(0×3)+(0×1)=-1.
A 0 1 2 3 2 1 0
B -1 3 1
A*B 1 5 8 9 4 1 -1
12
Operações de Convoluçãocom Máscaras
Processamento Digital de Imagens
� O conjunto {1,5,8,9,4,1,-1} é o resultado final da operação de convolução.
� Este raciocínio pode ser expandido para o caso bidimensional.� Imagem a ser processada é uma matriz bidimensional
grande e corresponde ao conjunto A do exemplo visto.� Matriz de pequenas dimensões (máscara ou janela)
corresponde ao conjunto B.� Máscara deve ser espelhada tanto na horizontal
quanto na vertical.
13
Operações de Convoluçãocom Máscaras
Processamento Digital de Imagens
� A máscara deve percorrer todos os pontos daimagem.� Desloca-se em todas as linhas da imagem, da
esquerda pra direita, de cima pra baixo, até terprocessado o último elemento da matriz imagem.
� O resultado será armazenado em uma matrizde mesmas dimensões que a imagem original.
14
Operações de Convoluçãocom Máscaras
� Seja a matriz A (imagem) abaixo:
Processamento Digital de Imagens
5 8 3 4 6 2 3 73 2 1 1 9 5 1 00 9 5 3 0 4 8 34 2 7 2 1 9 0 69 7 9 8 0 4 2 45 2 1 8 4 1 0 91 8 5 4 9 2 3 83 7 1 2 3 4 4 6
15
Operações de Convoluçãocom Máscaras
� E seja a matriz B (máscara) a seguir:
Processamento Digital de Imagens
� A operação de convolução bidimensional produzirá como resultado a matriz seguinte:
2 1 01 1 -10 -1 -2
16
Operações de Convoluçãocom Máscaras
� Resultado:
Processamento Digital de Imagens
20 10 2 26 23 6 9 418 1 -8 2 7 3 3 -1114 22 5 -1 9 -2 8 -129 21 9 -9 10 12 -9 -921 1 16 -1 -3 -4 2 515 -9 -3 7 -6 1 17 921 9 1 6 -2 -1 23 29 -5 -25 -10 -12 -15 -1 -12
17
Operações de Convoluçãocom Máscaras
� A figura abaixo ilustra o cálculo do resultado para o pixel no canto superior esquerdo da imagem.
� Observar que a máscara B foi espelhada em relação a x e a y antes do cálculo das somas de produtos.
Processamento Digital de Imagens 18
Operações de Convoluçãocom Máscaras
� Estratégias para calcular os valores resultantes dos pixels próximos às bordas:
1. Preencher com zeros o contorno da imagem.2. Preencher o contorno da imagem com os mesmos
valores da primeira e última linha e coluna.3. Considerar na imagem resultante apenas os valores
para os quais a máscara de convolução ficou inteiramente contida na imagem original.
� Veremos agora o uso do conceito de convoluçãocom máscaras aplicado à detecção de caracterís-ticas de imagem (pontos, linhas e bordas).
Processamento Digital de Imagens 19
Detecção de Pontos Isolados
Processamento Digital de Imagens
� A máscara abaixo é um exemplo de operador de convolução que, quando aplicado a uma imagem, destacará pixels brilhantes circundados por pixels mais escuros. -1 -1 -1
-1 8 -1
-1 -1 -1
R = w1.z1 + w2.z2 + ... + w9.z9
= Σ wi.zii=1
9Filtro Passa-Altas
� Um ponto é detectado na posição central da máscara se|R| > T
� Onde R é a equação acima e T é um limiar não-negativo.� Quando a máscara é posicionada sobre uma região
homogênea da imagem, a resposta da máscara é nula.20
Detecção de Linhas (Retas)
Processamento Digital de Imagens
� Máscaras abaixo podem ser utilizadas para a detecção de linhas horizontais, verticais e diagonais.
2 -1 -1
-1 2 -1
-1 -1 2
-1 -1 2
-1 2 -1
2 -1 -1
-1 -1 -1
2 2 2
-1 -1 -1
-1 2 -1
-1 2 -1
-1 2 -1
� Para uma imagem com intensidade de fundo constante, a resposta máxima da máscara horizontal ocorre quando a reta (largura de um pixel) passa pela linha central da máscara.
horizontal vertical diagonal 45º diagonal 135º
21
Detecção de Bordas
� O tema ‘detecção de bordas’ (edge detection) vem desafiando os pesquisadores da área de PDI há muitos anos.
� Novas técnicas surgem e são publicadas ainda hoje nos mais conceituados periódicos científicos mundiais.
� Trata-se de um tema em aberto a detecção de bordas em cenas consideradas ‘difíceis’.
� Detecção de bordas constitui uma categoria para segmentação da imagem.
Processamento Digital de Imagens 22
Detecção de Bordas
� Serão apresentados alguns exemplos demáscaras que podem ser utilizadas para atarefa de detecção de bordas.
� Borda (edge) é a fronteira entre duas regiõescujos níveis de cinza predominantes sãorazoavelmente diferentes.
� Borda de luminosidade corresponde a umadescontinuidade na luminosidade de umaimagem.
Processamento Digital de Imagens 23
Detecção de Bordas� Pode-se definir borda de textura ou borda de cor
em imagens onde as informações de textura ou cor são as mais importantes.
� Neste curso, trataremos somente de bordas de luminosidade e chamaremos simplesmente bordas.
� Para a detecção e realce de bordas, aplicam-se filtros espaciais lineares de dois tipos:� Baseados no gradiente da função de luminosidade I(x,y)� Baseados no laplaciano de I(x,y)
Processamento Digital de Imagens 24
Detecção de Bordas� Matematicamente, o gradiente é um vetor cuja direção
indica os locais nos quais os níveis de cinza sofrem maior variação.
� O vetor gradiente ∇f(x,y) de uma imagem na posição (x,y) pode ser calculado pelas derivadas parciais:
����, �� ����, ��
� �
���, ��
�
� Tanto o gradiente quanto o Laplaciano são aproximados por máscaras de convolução ou operadores 3x3.
� Alguns exemplos destas máscaras são os operadores de Roberts, Sobel, Prewitt.
Processamento Digital de Imagens 25
Detecção de Bordas
Processamento Digital de Imagens
OPERADOR VERTICAL HORIZONTAL
Roberts
Sobel
Prewitt-1 -1 -1
0 0 0
1 1 1
0 0 -1
0 1 0
0 0 0
-1 0 0
0 1 0
0 0 0
1 0 -1
1 0 -1
1 0 -1
-1 0 1
-2 0 2
-1 0 1
-1 -2 -1
0 0 0
1 2 1
1
41
4
1
31
326
Detecção de Bordas
� Seguem algumas imagens resultantes da aplicação dos operadores de Prewitt e Sobel a uma imagem monocromática.
� Resultados da aplicação dos operadores verticais e horizontais podem ser combinados por meio de uma operação lógica OR ou mesmo por meio de uma média aritmética.
� Notar que as diferenças são pouco perceptíveis.
Processamento Digital de Imagens 27
Detecção de Bordas
Processamento Digital de Imagens
Imagem original Operador Prewitt Operador Sobel
28
Detecção de Bordas
Original
Roberts
Sobel
Processamento Digital de Imagens 29
Detecção de Bordas
Cálculo do gradiente digital (diferenças nas direções x e y).
Processamento Digital de Imagens
Original Diferenças horizontais (Dx) Diferenças verticais (Dy) Módulo do gradiente
30
Detecção de Bordas
� O operador Laplaciano de uma função bidimensional contínua f(x,y) é definido por uma derivada de segunda ordem como:
Processamento Digital de Imagens
� O Laplaciano pode ser aproximado pelas máscaras da figura seguinte.
� Esta aproximação será demonstrada posteriormente.
�����, �� �����, ��
���
����, ��
��
31
Detecção de Bordas
� Máscaras para o cálculo do Laplaciano:
Processamento Digital de Imagens
3 × 3 5 × 5 9 × 9
32
Detecção de Bordas
� O Laplaciano é insensível à rotação.� É capaz de realçar ou detectar bordas em qualquer
direção.
� Porém, seu uso é restrito devido a sua grande suscetibilidade a ruído.
� As figuras a seguir mostram exemplos de aplicação do laplaciano 3×3 a uma imagem monocromática com e sem ruído.
Processamento Digital de Imagens 33
Detecção de Bordas
Processamento Digital de Imagens
Imagem original Laplaciano 3x3
Exemplo 1:
34
Detecção de Bordas
Processamento Digital de Imagens
Laplaciano 5x5 Laplaciano 9x9
Exemplo 1:
35
Detecção de Bordas
Processamento Digital de Imagens
Exemplo 2:
Imagem original Imagem ruidosa
36
Detecção de Bordas
Processamento Digital de Imagens
Exemplo 2:
Laplaciano 3x3 aplicado à original Laplaciano 3x3 aplicado à ruidosa
37
Detecção de Bordas
Processamento Digital de Imagens
Exemplo 3:Aplicar o Laplaciano sobre uma imagem binária de um objeto quadrado e mostrar o resultado.
0 0 0 0 0
0 1 1 1 0
0 1 1 1 0
0 1 1 1 0
0 0 0 0 0
38
Processamento Digital de Imagens 39