Antonio G. Thomé thome@nce.ufrj.br
Sala – AEP/1033
Universidade Federal do Rio de Janeiro
Universidade Federal do Rio de Janeiro
-IM/DCC & NCE
IM/DCC & NCE
Processamento de Imagens
Processamento de Imagens
Tratamento da Imagem
2
z Conceito de Filtragem z Filtros Digitais
z Domínio da Filtragem
9 Filtragem no Domínio da Freqüência 9 Filtragem no Domínio Espacial
z Tipos de Filtros
9 Filtros Lineares
Filtros Passa-baixas Filtros Passa-altas Filtros Passa-banda
9 Filtros Não Lineares
No domínio da freqüência – Filtragem Homomórfica No domínio do espaço – Filtro de Mediana – Filtro de Ordem – Filtro de Moda
– Filtros Detectores de Borda
z Conceito de Filtragem z Filtros Digitais
z Domínio da Filtragem
9 Filtragem no Domínio da Freqüência 9 Filtragem no Domínio Espacial
z Tipos de Filtros
9 Filtros Lineares
Filtros Passa-baixas Filtros Passa-altas Filtros Passa-banda
9 Filtros Não Lineares
No domínio da freqüência – Filtragem Homomórfica No domínio do espaço – Filtro de Mediana – Filtro de Ordem – Filtro de Moda
3
Filtragem Digital
z Consiste na aplicação de técnicas de transformação
(operadores – máscaras) com o objetivo de corrigir, suavizar ou realçar determinadas características de uma imagem
dentro de uma aplicação específica.
9 correção - é a remoção de características indesejáveis, e 9 melhoria/realce - é a acentuação de características.
z A filtragem é realizada pixel a pixel, onde o novo nível de
cinza de um ponto P qualquer depende do seu nível de cinza original e do de outros pontos considerados como vizinhança
de P.
9 Em geral, os pontos mais próximos de P contribuem mais para o novo valor do nível de cinza do que os pontos mais afastados
4
Domínio da Filtragem
• Domínio EspacialSão procedimentos que operam diretamente sobre os pixels da imagem na sua forma original.
• Domínio da Freqüência
São procedimentos que operam sobre a Transformada de Fourier da imagem original.
5
Tipos de Filtros
z Filtros lineares
Suavizam, realçam detalhes da imagem e minimizam efeitos de ruído, sem alterar o nível médio de cinza da imagem.
• Filtros não-lineares
Aplicam transformações sem o compromisso de manterem o nível médio de cinza da imagem original.
6
Filtros Lineares
• no domínio do espaço: convolução g(x,y) f(x,y) h(x,y)g(x,y)= h(x,y) * f(x,y)
• no domínio da freqüência:
produto
G(u,v)
H(u,v)
F(u,v)
G(u,v)= H(u,v) . F(u,v)
7
Filtros Lineares no Domínio da Freqüência
a) Filtro Passa-baixas – Filtro Ideal
Deixa passar apenas as componentes de mais baixa freqüência (atenuam o contraste).
v u H(u,v) H(u,v) D(u,v) D0 > ≤ = 0 0 ) , ( 0 ) , ( 1 ) , ( D v u D se D v u D se v u H ) ( ) , (u v u2 v2 D = + freqüência de corte
8
Filtros Lineares no Domínio da Freqüência
b) Filtro Passa-baixas – Filtro de Butterworth
n D v u D v u H 2 0] / ) , ( [ 1 1 ) , ( + = u v H(u,v)
Filtro de Butterworth para n=1
As componentes de freqüência são quase exponencialmente reduzidas a
medida que a distância D(u,v) fica maior que a freqüência de corte.
9
Filtros Lineares no Domínio da Freqüência
c) Filtro Passa-Altas – Filtro Ideal
1 D0 D(u,v) H(u,v) H(u,v) u v > ≤ = 0 0 ) , ( 1 ) , ( 0 ) , ( D v u D se D v u D se v u H
10
Filtros Lineares no Domínio da Freqüência
d) Filtro Passa-Altas – Filtro de Butterworth
n v u D D v u H 2 0 / ( , )] [ 1 1 ) , ( + = u v H(u,v)
As componentes de freqüência são quase exponencialmente reduzidas a
medida que a distância D(u,v) fica menor que a freqüência de corte.
11
Filtros Lineares no Domínio da Freqüência
Exemplo: Filtro Passa-Altas
12
Filtros Lineares no Domínio da Freqüência
Exemplo: Filtro Passa-Baixas
Espectro de Fourier
Imagem de 512x512 pixels Raios iguais a 8, 18, 43, 78 e 152 -90, 93, 95, 99 e 99,5% da potência
13
Passa-baixas – D0 = 8 Passa-baixas – D0 = 152
Passa-baixas – D0 = 18 Passa-baixas – D
0 = 78
14
Filtragem Não Linear no Domínio da Freqüência
Filtragem Homomórfica
Trata-se de uma abordagem que busca operar sobre as componentes de iluminação e reflectância separadamente.
)
,
(
).
,
(
)
,
(
x
y
i
x
y
r
x
y
f
=
)}
,
(
{
)}
,
(
{
)}
,
(
{
f
x
y
≠
ℑ
i
x
y
ℑ
r
x
y
ℑ
)) , ( ln( )) , ( ln( )) , ( ln( ) , ( y x r y x i y x f y x z + = =))}
,
(
{ln(
))}
,
(
{ln(
)}
,
(
{
z
x
y
=
ℑ
i
x
y
+
ℑ
r
x
y
ℑ
15
Filtragem Não Linear no Domínio da Freqüência
Filtragem Homomórfica ...
)
,
(
)
,
(
)
,
(
u
v
I
u
v
R
u
v
Z
=
+
) , ( ) , ( ) , ( ) , ( ) , ( ) , ( ) , ( v u R v u H v u I v u H v u Z v u H v u S + = = )} , ( ) , ( { )} , ( ) , ( { )} , ( { ) , ( 1 1 1 v u T v u H v u I v u H v u S y x s − − − ℑ + ℑ = ℑ = ) , ( ) , ( )] , ( ' exp[ )]. , ( ' exp[ )] , ( exp[ ) , ( 0 0 x y r x y i y x r y x i y x s y x g = = =16
Filtragem Não Linear no Domínio da Freqüência
Filtragem Homomórfica ...
f(x,y) ln() FFT H(u,v) (FFT)-1 exp()
g(x,y)
• A componente de iluminação de uma imagem é geralmente caracterizada por
variações espaciais lentas;
• A reflectância tende a variar abruptamente, particularmente na junção de
objetos diferentes.
O filtro homomórfico oferece uma forma de operar sobre esses componentes separadamente. Assim, os efeitos da iluminação ficam associados às baixas
freqüências e os da reflectância às altas freqüências
O filtro homomórfico oferece uma forma de operar sobre esses componentes separadamente. Assim, os efeitos da iluminação ficam associados às baixas
17
Filtragem Homomórfica
Exemplo:
18
19
Filtragem Linear no Domínio do Espaço
z Os métodos de filtragem espacial operam diretamente sobre a matriz de pixels (imagem digitalizada);
z normalmente utilizam operações de convolução entre a imagem original e uma máscara especialmente construída; z As máscaras são chamadas de filtros espaciais.
Como no domínio da freqüência as máscaras podem implementar filtros: • Passa-Baixas – para suavizar a imagem;
• Passa-Altas – para realçar bordas;
20
Filtragem Linear no Domínio do Espaço
Filtros no Domínio da Freqüência
1 1 1
Passa-Altas Passa-Banda Passa-Baixas
0
21
O Processo de Filtragem Espacial
¾ Consiste na aplicação sucessiva de máscara que desliza sobre toda aimagem original;
¾ Ao ser aplicada com centro numa posição (i,j), sendo i o número de uma
dada linha e j o número de uma dada coluna da imagem, consiste na substituição do valor do pixel na posição (i,j) por um novo valor o qual depende dos valores dos pixels vizinhos e dos pesos da máscara.
¾ À cada posição da máscara está associado um valor numérico, chamado
de peso ou coeficiente.
¾ Em cada posição (i,j), os pesos do filtro são multiplicados pelos NCs dos
pixels correspondentes e somados, resultando em um novo valor de NC, que substitui o antigo NC do pixel central.
22
O Processo de Filtragem Espacial
w25 w24 w23 w22 w21 w20 w19 w18 w17 w16 w15 w14 w13 w12 w11 w10 w9 w8 w7 w6 w5 w4 w3 w2 w1 Máscara 5x5 R
∑
= − +=
n i i n iw
z
R
1 123
O Processo de Filtragem Espacial
¾ Na operação de filtragem deve-se calcular os pontos pertencentes à borda da imagem de modo diferente dos demais, já que estes não dispõem de todos os vizinhos.
¾ Por questões de simetria usam-se, na definição das máscaras dos filtros, janelas N x N, onde N é um número ímpar.
¾ Por questões de eficiência computacional, preferem-se valores pequenos para N (no máximo 7).
24
O Processo de Filtragem Espacial
R
∑
= − +=
n i i n iw
z
R
1 1 w25 w24 w23 w22 w21 w20 w19 w18 w17 w16 w15 w14 w13 w12 w11 w10 w9 w8 w7 w6 w5 w4 w3 w2 w1 Máscara 5x525
Filtro Passa-baixas
z Atenua (ou elimina) as altas freqüências que estão relacionadas com a informação de detalhes da imagem. z O efeito visual de um filtro passa-baixas é o de suavização
(smoothing) da imagem uma vez que as altas freqüências, que correspondem às transições abruptas, são atenuadas. z A suavização tende também, pelas mesmas razões, a
minimizar o efeito do ruído em imagens.
z A filtragem passa-baixas tem, por outro lado, o efeito indesejado de diminuir a resolução da imagem, provocando
assim, um leve borramento. Ou seja, diminui a nitidez e a definição da imagem.
26
Exemplo Filtro Passa-baixa – Filtro de Média
z Filtros de média 3x3, 5x5 e 7x7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1/9 * 1/25 * 1/49 *
z Substitui o valor do pixel original pela média aritmética do pixel dos seus
vizinhos;
z Quanto maior a máscara, maior o efeito de borramento. z Pesos positivos
27
Resultado da Aplicação do Filtro de Média
3x3
z Os ruídos foram reduzidos, porém a imagem filtrada apresenta-se
28
Exemplo Filtro Passa-baixas –
Filtro de Média Ponderada
z São usados quando os pesos são definidos em função de sua distância do peso central.
z Filtros de Média Ponderada de dimensão 3x3 são:
1/16 * 1 2 1 2 4 2 1 2 1 1 1 1 1 2 1 1 1 1 1/10 *
29
Resultado da Aplicação do Filtro de Média Ponderada 3x3
1 1 1 1 2 1 1 1 1 1 2 1 2 4 2 1 2 1 Original
30
Filtro Passa-altas
z Atenuam ou eliminam as baixas freqüências, realçando as altas freqüências e são normalmente usados para realçar os
detalhes na imagem (agudização – sharpening).
z Para filtros passa-altas, o efeito obtido é, em geral, o de tornar mais nítidas as transições entre regiões diferentes,
conhecidas como bordas, realçando o contraste.
z O efeito indesejado destes filtros é o de enfatizar o ruído presente na imagem.
31
Filtro Passa-altas Básico
z O formato da resposta de um filtro passa-altas deve ser tal que a máscara correspondente apresente coeficientes
positivos nas proximidades de seu centro e negativos longe deles.
9 Exemplo - máscara 5x5, reforça o contraste que porventura exista
entre os pixels centrais e os da periferia.
-1 -1 -1 -1 -1 -1 1 1 1 -1 -1 1 8 1 -1 -1 1 1 1 -1 -1 -1 -1 -1 -1
∑
= − +=
n i i n iw
z
R
1 132
Exemplos de Filtros Passa-altas
0 -1 0 -1 4 -1 0 -1 0 -1 -1 -1 -1 8 -1 -1 -1 -1 1 -2 1 -2 4 -2 1 -2 1
z Pesos positivos, negativos e nulos
z Observe que a soma algébrica da máscara é zero, o que
significa que quando aplicada a regiões homogêneas de uma imagem, o resultado será zero ou um valor muito baixo.
33
Resultado da Aplicação do Filtro Passa-altas 3x3
-1 -1 -1
-1 8 -1
-1 -1 -1
z A máscara foi aplicada a imagem
original (esquerda) resultando a imagem da direita
34
Filtros Passa-altas Direcionais
¾ Os filtros passa-alta direcionais (realce de bordas) realçam a cena, segundo direções preferenciais de interesse, definidas pelas máscaras.
¾ A seguir estão algumas máscaras utilizadas para realçar bordas em vários sentidos.
¾ O nome dado às máscaras indica a direção ortogonal
preferencial em que será realçado o limite de borda. Assim, a máscara norte realça limites horizontais
35
Exemplos de Filtros Passa-altas Direcionais
1 1 1 1 -1 1 -1 -1 -1 -1 1 1 -1 -1 1 -1 1 1 -1 -1 -1 1 -1 1 1 1 1 1 1 -1 1 -1 -1 1 1 -1
Norte Leste Sul Oeste
1 1 1 -1 -1 1 -1 -1 1 -1 -1 1 -1 -1 1 1 1 1 1 -1 -1 1 -1 -1 1 1 1 1 1 1 1 -1 -1 1 -1 -1
36
Exemplos de Filtros Passa-altas
z Linhas, em imagens, podem ser detectadas através das máscaras: -0.5 1 -0.5 -0.5 1 -0.5 -0.5 1 -0.5 -0.5 -0.5 -0.5 1 1 1 -0.5 -0.5 -0.5 Horizontais Verticais -1 -1 2 -1 2 -1 2 -1 -1 2 -1 -1 -1 2 -1 -1 -1 2 +45o Diagonal -45o
37
Filtro Passa-banda (ou Passa-faixa)
z Seleciona um intervalo de freqüências do sinal (banda de freqüência) para ser realçado, removendo, ou atenuando componentes fora da faixa selecionada
z São de pouca utilidade prática, a menos de algumas tarefas específicas em restauração de imagens
1
f
Resposta em
freqüência Filtro correspondente no domínio espacial
38
Filtragem Não-Linear no Domínio Espacial
z Um exemplo típico de filtro passa-baixas não-linear é o filtro da
mediana, que suaviza a imagem sem contudo diminuir sua resolução.
z No filtro da mediana, os pontos da vizinhança de (x,y), dentro de uma
janela na imagem, são ordenados e tomado como novo valor para (x,y) o valor mediano desta ordenação.
z É possível, também, em vez de tomar a mediana da vizinhança, escolher
o valor máximo ou o valor de ordem qualquer.
z Esta categoria de filtros é conhecida por filtros de ordem.
z Uma alternativa que produz resultados interessantes é tomar o valor mais
freqüente de uma vizinhança - a "moda", que elimina ruídos pontuais sem alterar muito as informações da imagem.
39
Exemplos de Filtro Não-Linear (Passa-baixas)
z Filtro de Mediana
9 Suaviza a imagem sem diminuir sua resolução (borrar);
9 Os pontos da vizinhança de (x,y), dentro de uma janela da imagem, são
ordenados e tomado como novo valor para (x,y) o valor mediano desta ordenação.
z Filtro de Ordem
9 Os pontos da vizinhança de (x,y), dentro de uma janela da imagem, são
ordenados e tomado como novo valor para (x,y) o valor máximo ou o valor de uma ordem qualquer desta ordenação.
z Filtro de Moda
9 Os pontos da vizinhança de (x,y), dentro de uma janela da imagem, são
ordenados e tomado como novo valor para (x,y) o valor mais freqüente da vizinhança
40
Exemplos de Filtros Não-Lineares • Imagem original • Imagem com ruído aditivo
41
Filtros Não Lineares – Detectores de Bordas
z Detecção de Bordas
9 Detectam características como bordas, linhas, curvas e manchas 9 O problema da detecção de bordas é indicar uma mudança súbita do
nível de cinza entre duas regiões relativamente homogêneas
9 A maioria dos operadores de detecção de bordas baseia-se numa
filtragem passa-altas seguida de um processo de limiarização:
Se a saída do filtro ultrapassar o limiar, uma borda local é
detectada, caso contrário a borda não é detectada
9 Para se obter uma detecção de bordas independente da direção,
pode-se efetuar uma filtragem espacial em duas direções ortogonais, vertical (y) e horizontal (x). Estes dois resultados constituirão as componentes de um vetor gradiente:
9 Operadores mais comuns: Roberts Sobel ∇ ∇ = ∇ y x
42
Operador Roberts
z É o mais antigo e mais simples algoritmo de detecção de bordas.
z Roberts introduziu a seguinte operação cruzada (módulo do gradiente):
z Que deve ser comparado a um limiar.
z Devido ao custo computacional, as operações de elevar ao quadrado e raiz quadrada são, muitas vezes substituídas pelo valor absoluto das diferenças cruzadas
) 1 , ( ) , 1 ( ) 1 , 1 ( ) , ( ) , (x y = f x y − f x+ y+ + f x+ y − f x y+ g
[
] [
2]
2 1/2 ) 1 , ( ) , 1 ( ) 1 , 1 ( ) , ( ) , ( − + + + + − + = f x y f x y f x y f x y y x g43
Operador Roberts
z Este operador pode ser representado por duas componentes
z Como resultado de sua aplicação, obtém-se uma imagem com altos valores de nível de cinza, em regiões de contrastes bem
definidos e valores baixos em regiões de pouco contraste, sendo 0 para regiões de nível de cinza constante.
z Uma desvantagem deste operador é a sua assimetria
9 Dependendo da direção, certas bordas são mais realçadas que outras,
mesmo tendo magnitude igual. 0 -1 1 0 -1 0 0 1
44
45
Operador Sobel
z Mais sofisticado que o operador Roberts. z É dado pela seguinte expressão:
9 Onde X e Y são as saídas dos filtros dados pelas seguintes máscaras
9 A máscara X detecta as variações no sentido horizontal e a máscara
Y, no sentido vertical.
z O operador gradiente de Sobel tem a propriedade de realçar linhas verticais e horizontais mais escuras que o fundo, sem realçar pontos isolados
2 2
)
,
(
x
y
X
Y
g
=
+
-1 -2 -1 0 0 0 1 2 1 1 0 -1 2 0 -2 1 0 -1 Y X46
Operador Sobel (continuação)
z A detecção de bordas é obtida pela limiarização da magnitude do gradiente
9 Diferentes valores de limiar resultam em diferentes mapas de bordas. 9 Se o limiar é muito baixo, muitos pontos são marcados como pontos
de borda, resultando em bordas grossas ou muitos pontos de bordas isolados
9 Se o limiar é alto, os segmentos aparecerão finos e quebrados (sem
47
48
Operador Prewitt
z Semelhante ao operador Sobel
z Encontra as bordas utilizando uma aproximação da derivada. z Retorna as bordas onde o gradiente da imagem é máximo. z É dado pela seguinte expressão:
9 Onde X e Y são as saídas dos filtros dados pelas seguintes máscaras
1 1 1 0 0 0 -1 -1 -1 -1 0 1 -1 0 1 -1 0 1 2 2
)
,
(
x
y
X
Y
g
=
+
X Y49
50
Prewitt x Sobel
• Imagem Original • Sobel
51
Filtro Laplaciano
É um operador escalar baseado na derivada de 2a ordem.
) , ( ) , ( ) , ( 2 2 2 2 2 f x y y y x f x y x f ∂ ∂ + ∂ ∂ = ∇ Laplaciano Contraste na borda Gradiente
) ( 2 2 x f x ∂ ∂ ) ( x f x ∂ ∂ ) ( x f
52
Operador Laplaciano
z O Laplaciano de uma função bidimensional f(x,y) é uam derivada de segunda ordem definida por
z A implementação desta equação na forma digital para o caso de uma região 3x3 pode ser:
z A exigência para a definição do laplaciano digital é que o coeficiente associado com o pixel central seja positivo e que os pixels externos sejam negativos
z Como o laplaciano é uma derivada, a soma dos coeficientes tem que ser nula (toda a vez que o ponto em questão e seus vizinhos tiverem o mesmo valor, a resposta será nula)
2 2 2 2 2 y f x f f ∂ ∂ + ∂ ∂ = ∇
)
(
4
5 2 4 6 8 2f
=
z
−
z
+
z
+
z
+
z
∇
53
Máscara Espacial do Operador Laplaciano
z A máscara espacial que pode ser usada na implementação da equação seria: 0 -1 0 -1 4 -1 0 -1 0
O Laplaciano é um operador linear, invariante à
translação e sua função de transferência é zero na origem do espaço de freqüência.
54
Efeito da Aplicação do
55
Operador Canny
z Encontra as bordas procurando por um máximo local do gradiente da imagem
z O gradiente é calculado a partir da derivada de um filtro gaussiano
z O método usa dois limiares para detectar bordas fortes e
fracas e inclui as bordas fracas na saída somente quando elas estiverem conectadas a bordas fortes
z Este método é menos sensível a ruídos dos que os demais e mais provável de detectar bordas fracas
56
57 Sobel Canny Original Roberts Prewitt Laplaciano