Introdução ao Processamento de Imagens Digitais Neucimar J. Leite IC-UNICAMP e-mail: [email protected] Processamento de Imagens • Introdução • Filtragem e segmentação – operações lineares: • Transformada de Fourier, convolução – operações não lineares: • Morfologia Matemática Exemplo de aplicações: • • • • • • • • • • automação e visão artificial reconhecimento de caracteres análise de cromossomos veículos autônomos mapeamento de terrenos detecção de alvos tomografia computadorizada ultra-sonografia inspeção industrial análise de imagens de satélites em SIGs • etc Modelo de um sistema de PDI A imagem digital (x,y) • função 2D f f(x,y) y x pixel Processamento de baixo nível Classes de operações: • operações pontuais • operações globais • operações de vizinhança: - operações lineares : transformada de Fourier, convolução - operações não-lineares: morfologia matemática - operações híbridas Histograma h • Operação global que fornece a freqüência de ocorrência dos níveis de cinza de f . • Dá informações sobre a distribuição dos níveis de cinza a dinâmica da imagem • Aplicações: filtragem, segmentação, reconhecimento de padrões e imagens. Algoritmo: • Início h[f(x,y)] = 0 {zera contadores de níveis de cinza} Para cada valor f(x,y) faça h[f(x,y)] = h[f(x,y)] + 1 Fim-para Fim Exemplos de diferentes dinâmicas: h h 0 0 255 h Imagem escura 255 Imagem clara 0 255 Exemplos de histogramas: Exemplos simples de aplicação: 255 255 90 255 100 255 Observações: • Um mesmo histograma pode estar associado a diferentes imagens. • Sua informação é invariante com as operações de rotação e translação. • Podemos considerar um histograma para cada banda espectral ou um histograma 3-D, por exemplo, referente às componentes RGB de uma imagem colorida. Transformações radiométricas ou de escala de cinza • Independem da localização dos pixels na imagem. • Em termos de implementação, podem ser representadas por look-up-tables (LUT). • Transformam um pixel de nível de cinza gi em um nível de cinza gf . Uma tranformação radiométrica r : • É uma aplicação I(Gi) Gi = [0,1,...,Ni], Gf = [0,1,...,Nf] e F(Gf), tal que gi Gi , g f G f , g f r ( gi ) Exemplos de funções r : complemento ou negativo gf 255 0 255 gi Realce de contraste (stretching) gf 255 0 p1 p2 255 gi Imagem colorida Limiarização gf 255 0 255 gi Imagem binária Equalização histogrâmica • Transformação radiométrica que visa aumentar a dinâmica dos níveis de cinza melhorando, por exemplo, o contraste de imagens obtidas sob péssimas condicões de iluminação. • Idéia: gerar uma distribuição mais uniforme dos níveis de cinza um histograma planar. h(p) h(q) p q Exemplo de uma técnica de equalização: • Seja f uma variável no intervalo [0,1]. Uma transformação T no intervalo [0,1] é tal que: g = T(f) (g(x,y) = T(f(x,y)), no nosso caso) • Visando monotonicidade e preservação da escala de cinza: – T deve ser monotonicamente crescente no intervalo [0,1]. 0 T ( f ) 1 para 0 f 1 g 1 gk =T(fk) 0 fk 1 f Consideremos, agora, a seguinte função T(f): f g T ( f ) p f ( w)dw 0 f 1 0 que representa a função de distribuição cumulativa (FDC) de f (esta função é monotonicamente crescente e varia de 0 a 1 em função de f). • Conclusão: se T(f) é uma FDC, então ela pode ser empregada na definição de uma nova imagem cuja distribuição dos níveis de cinza será mais uniforme. O caso discreto: • Imagem: n=M x N pixels com valores discretos k = 0,1,...,L-1: nk p f ( fk ) n • 0 fk 1 onde: nk = número de aparições do nível k pf(fk) = probabilidade de ocorência de fk Assim: k nj j 0 n gk T ( f k ) k p f ( f j ), j 0 0 f k 1 e k 0,1,...,L 1. Exemplos: Imagem colorida Casamento de histogramas • Transforma o histograma de uma imagem original fo de acordo com o histograma de uma imagem de referência fr. • Sejam h(fo) e h(fr) os histogramas das imagens original e de referência, respectivamente. imagem escura imagem clara h(fr) h(fo) fr fo v=G[r] s=T[o] r o p(v) p(s) v s Imagem transformada: r = G-1(s) Exemplos de casamento de histogramas original referência modificada Filtragem • Processamento local: pixels vizinhos têm, em geral, as mesmas características. – ruído: fenômeno de brusca variação de um pixel em relação a sua vizinhança. • Tipos gerais: linear, não-linear, híbrida. • Domínio: espacial, freqüência Exemplo: domínio da freqüência imagem original f espectro |F(u,v)| A transformada inversa de Fourier: Exemplo de filtragem: imagem com ruído função H(u,v) imagem filtrada Exemplo de detecção de contorno: imagem original função H(u,v) imagem de contornos Princípio geral da filtragem linear: (função de transferência) F(u,v) H(u,v) f(x,y) h(x,y) G(u,v) g(x,y) • G(u,v) = H(u,v) F(u,v) • a TF inversa de G(u,v) define g(x,y) Caso discreto: N-1 N-1 g(x, y) = f(i, j)h(x - i, y - j) i=0 j=0 h = representação espacial da função de transferência H. f = imagem de entrada de tamanho NxN 1 g = imagem resultante da filtragem TF [G(u, v)] f(x,y) F(u,v) h(x,y) H(u,v) g(x,y) G(u,v) Convolução: Operação local de filtragem • Convolução: g(x, y) m n f(i, j)h(x i, y j) i m j n f(x,y) y h(x-i,y-j) x Alguns exemplos • Filtro média: h 1 9 1 1 1 1 1 1 1 1 1 Exemplo: f= 10 10 10 10 90 10 10 10 10 10 10 10 10 18 10 10 10 10 Exemplo: máscara 11x11 não preserva contornos imagem com ruído imagem filtrada no domínio espacial original média 3x3 com ruído média 17x17 Detectores de contorno • identificam transições bruscas na função f(x,y) Operadores diferencias: o gradiente vetor: magnitude: direção: f x f f y f 2 f 2 f y x y tg x 1 1 2 Gradiente de Roberts • vizinhança 2x2: d 1 f ( x, y) f ( x, y) f ( x 1, y 1) d 2 f ( x, y) f ( x, y 1) f ( x 1, y) 1350 x,y x,y+1 x+1,y+1 x+1,y 450 Exemplo: imagem original gradiente de Roberts Descontinuidades em x, y: • Operadores 3x3 de Prewitt: 1 1 1 x 0 0 0 1 1 1 1 0 1 y 1 0 1 1 0 1 e Sobel: 1 2 1 x 0 0 0 1 1 1 1 0 1 y 2 0 1 1 0 1 Exemplo: operadores de Prewitt 1 1 1 x 0 0 0 1 1 1 1 0 1 y 1 0 1 1 0 1 x y O Laplaciano 2 2 f f 2 • derivada de segunda ordem: f 2 2 x y 0 1 0 h= 1 -4 1 0 1 0 passagem por zero Exemplo: f= contorno 10 10 10 20 20 0 0 10 10 0 10 10 10 20 20 0 0 10 10 0 10 10 10 20 20 0 0 10 10 0 Filtragem não-linear • filtragem com preservação de contornos • Filtros estatísticos da ordem: Ex.: filtro da mediana (filtros estatísticos da ordem): f(x,y) ordenação 10 10 10 10 100 10 10 10 10 10 10 10 10 10 10 10 100 10 substitui valor mediano Filtro da mediana • Vantagens: – Elimina eficientemente o ruído impulsivo (ruído de Poisson). – Não introduz novos valores de níveis de cinza na imagem. – Preserva bordas e pode ser aplicado iterativamente. • Desvantagem: – Elimina linhas muito finas e vértices dos objetos. 0 10 0 0 10 10 0 10 0 0 10 10 0 10 0 0 0 0 0 0 Exemplo comparativo: mediana 5x5 média 11x11 Alternativa: Mediana separável • Subdivide a vizinhança 2-D em linhas ou colunas; calcula a mediana destas e em seguida a mediana das medianas. Mediana das linhas 0 10 10 10 0 10 10 10 0 0 0 0 10 Desvantagem: variante à rotação mediana das medianas Filtro da ordem-k • Substitui um pixel central M, numa vizinhança qualquer, pelo k-ésimo valor dos elementos desta vizinhança ordenados segundo sua magnitude. ordenação 11 50 51 10 80 52 10 10 11 49 50 50 51 52 80 10 49 50 filtro min mediana filtro max Filtro da média com os k-vizinhos mais próximos • Substitui um pixel central M pelo valor médio dos k níveis de cinza que mais se aproximam do valor de M. k=6 40 43 40 50 90 51 51 52 53 M´= 53 52 51 51 50 43 50 6 0 30 0 0 30 0 k=8 k=2 0 30 0 M´= 7 M´= 30 Morfologia Matemática • a análise da imagem: – segmentação – classificação . . . .. .... ... .. ... .. . . . .. .. .... . .. . .. . . . .. . filtragem segmentação estrela classificação cubo As transformações morfológicas • Princípio: – comparação da imagem original com outra menor denominada elemento estruturante imagem elementos estruturantes Bx 8-conexo conjunto X 4-conexo origem Operações morfólogicas básicas • sobre conjuntos e funções: Erosão e dilatação – Dilatação: união de todos os pontos da imagem X, tal que o elemento estruturante Bx intercepta X imagem =X = Xc Bx imagem dilatada Exemplo de dilatação: Bx imagem original imagem dilatada B ( X ) {x , Bx X } 2 Erosão • conjunto dos pontos de X, tal que Bx esteja totalmente incluído em X imagem =X = Xc Bx imagem erodida Exemplo de erosão: Bx imagem original imagem erodida B ( X ) {x , Bx X } 2 Para o caso de funções (imagens em níveis de cinza) • dilatação: B ( f ) max{xk , k B} • erosão: B ( f ) min{xk , k B} f 10 10 10 10 0 10 10 10 10 B ( f ) B ( f ) 10 10 10 10 10 10 10 10 10 10 0 10 0 0 0 10 0 10 Bx Exemplos imagem original dilatação erosão Abertura e fechamento morfológicos • combinações - abertura : de erosão e dilatação: B B B - fechamento: B B B Propriedades: - operações duais, crescentes e idempotentes - a abertura é anti-extensiva e o fechamento, extensivo Exemplos: Bx original abertura fechamento Filtros morfológicos • filtros essencialmente não-lineares: - qualquer transformação crescente e idempotente f g (f) (g) f , (f) ( (f)) Conclusão: - erosão e dilatação não são filtros morfológicos - abertura e fechamento são os filtros morfológicos básicos Exemplos original com ruído filtragem por abertura Outros exemplos de operações elementares • gradiente morfológico: grad ( f ) B ( f ) B ( f ) original gradiente • Chapéu mexicano claro: CM ( f ) f n ( f ) original CM+ • Chapéu mexicano escuro: CM ( f ) n ( f ) f original CM- Exemplo: imagem original imagem afinada Operações geodésicas e reconstrução • métrica geodésica: X Dilatação geodésica • dilatação de Y em X de tamanho 1: X 1 (Y ) (B (Y )) X Y X X 1 (Y ) • dilatação de Y em X de tamanho infinito: X (Y ) X (X (...X (Y ))) n 1 1 1 n vezes Y (marcador) X (máscara) reconstrução X n (Y ) Exemplo de aplicaçao: • eliminaçao de partículas parcialmente incluídas na imagem X ' X \ X ( ) X X ( ) X' Reconstrução em níveis de cinza f ( g) min(1 ( g), f ) 1 f n ( g) f 1 ( f 1 (... f 1 ( g))) • Reconstrução dual marcador máscara reconstruçao dual Esqueleto por zona de influência • zona de influência: iz X (Yi ) {p X : j [1, k ], i j, d X ( p, Yi ) d X ( p, Yj )} • esqueleto SKIZ: SKIZ X (Y ) X \ IZ X (Y ) Segmentação morfológica • baseada na definição da Linha Divisora de Águas -LDA de uma função LDA mínimos regionais Cálculo da LDA: A partir de limiarizações sucessivas da imagem: Xi {x 2 , f ( x) i} i = 0,..., N • O conjunto Z das LDAs de f : Z j SKIZ X j ( X j 1 \ Z j 1 ) j =1,...,N Z Zj j 2 3 3 3 1 0 1 2 2 2 1 0 1 LDAs Exemplo de LDA: original gradiente LDA Próximos passos para a segmentação • definir marcadores das regiões de interesse imagem original marcadores definidos por limiarização •Imposição dos marcadores na imagem gradiente: - definir uma imagem g da seguinte forma: , se x M g( x) se x M 0, impondo marcadores • reconstrução dual de g: min( f , g ) ( g) nova LDA Exemplo: original gradiente gradiente LDA marcadores imagem segmentada ! Conclusões • PDI é uma área multidisciplinar • outras sub-áreas (sub-problemas): – – – – – aquisisição codificação / compressão restauração reconstrução etc. arquiteturas específicas, linguagens • filtragem e segmentação de imagens de radar • Segmentação multiresolução