ciência da computação tópicos processamento digital de imagens€¦ · operações de...

7
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ção com máscaras (janelas ou templates). Seja uma subárea de uma imagem: Processamento Digital de Imagens onde Z 1 ,...,Z 9 são os valores de tons de cinza de cada pixel. Z 1 Z 2 Z 3 Z 4 Z 5 Z 6 Z 7 Z 8 Z 9 Seja uma máscara 3x3 de coeficientes genéricos w1,...,w9: w 1 w 2 w 3 w 4 w 5 w 6 w 7 w 8 w 9 3 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 = Σ w i .z i i=1 9 Operações de convolução com máscaras são amplamente utilizadas no processamento de imagens. R = w 1 .z 1 + w 2 .z 2 + ... + w 9 .z 9 4 Operações Orientadas a Vizinhança Processamento Digital de Imagens Valores apropriados dos coeficientes w 1 ,...,w 9 possibilita 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 se implementar multiplicadores, somadores e registradores, há diversas implementações de convolução com máscaras em hardware. Operação orientadas a vizinhança são comuns em filtragem espacial, como será visto posteriormente. Processamento Digital de Imagens 6

Upload: others

Post on 15-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ciência da Computação Tópicos Processamento Digital de Imagens€¦ · Operações de Convolução com Máscaras Processamento Digital de Imagens O conjunto {1,5,8,9,4,1,-1} é

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

Page 2: Ciência da Computação Tópicos Processamento Digital de Imagens€¦ · Operações de Convolução com Máscaras Processamento Digital de Imagens O conjunto {1,5,8,9,4,1,-1} é

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

Page 3: Ciência da Computação Tópicos Processamento Digital de Imagens€¦ · Operações de Convolução com Máscaras Processamento Digital de Imagens O conjunto {1,5,8,9,4,1,-1} é

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

Page 4: Ciência da Computação Tópicos Processamento Digital de Imagens€¦ · Operações de Convolução com Máscaras Processamento Digital de Imagens O conjunto {1,5,8,9,4,1,-1} é

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

Page 5: Ciência da Computação Tópicos Processamento Digital de Imagens€¦ · Operações de Convolução com Máscaras Processamento Digital de Imagens O conjunto {1,5,8,9,4,1,-1} é

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

Page 6: Ciência da Computação Tópicos Processamento Digital de Imagens€¦ · Operações de Convolução com Máscaras Processamento Digital de Imagens O conjunto {1,5,8,9,4,1,-1} é

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

Page 7: Ciência da Computação Tópicos Processamento Digital de Imagens€¦ · Operações de Convolução com Máscaras Processamento Digital de Imagens O conjunto {1,5,8,9,4,1,-1} é

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