840 likes | 1.05k Views
Processamento Digital de Imagens. Módulo II. Realce de Imagens. Prof: José Eustáquio Rangel de Queiroz. Carga Horária: 60 horas. Roteiro. Realce de Imagens 5.1 Transformação da Escala de Cinza 5.2 Modificação do Histograma 5.3 Filtragem Espacial 5.4 Realce de Imagens Multiespectrais.
E N D
Processamento Digital de Imagens Módulo II Realce de Imagens Prof:José Eustáquio Rangel de Queiroz Carga Horária:60 horas
Roteiro • Realce de Imagens 5.1 Transformação da Escala de Cinza 5.2 Modificação do Histograma 5.3 Filtragem Espacial 5.4 Realce de Imagens Multiespectrais
Base de Discussão • Realce de Imagens • Questões preliminares • Em que consiste o realce de imagens? • Quais os propósitos das diferentes técnicas de realce de imagens? • Como as diferentes técnicas de realce atuam sobre imagens? • Em quese baseia cada uma das diferentes técnicas de realce de imagens?
Histograma I I I I I 255 255 255 255 223 223 223 223 191 191 191 191 159 159 159 159 127 127 127 127 95 95 95 95 63 63 63 63 31 31 31 31 0 0 0 0 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 Nc • Representação gráfica do número de vezes em que cada nível de cinza aparece em uma imagem digital Freqüência de ocorrência dos valores de brilho na imagem • Representação de um histograma com N níveis de cinza Array unidimensional contendo N elementos
Histograma II • Algoritmo • Criar um array hi[i(x,y)]para o armazenamento da freqüência de ocorrência de TODOS os níveis de cinza da imagem i(x,y); • Inicializar o array com valores nulos para TODOS os elementos; • Varrer a matriz de imagem pixel a pixel, armazenando em hi[i(x,y)] cada ocorrência registrada.
Histograma III 2 percentual de pixels 0 níveis de cinza 255 1 3 percentual de pixels percentual de pixels 0 níveis de cinza 255 0 níveis de cinza 255 • Exemplos de Histogramas
Transformação da Escala de Cinza I • Operações Pontuais • Operações Aritméticas • Operações Lógicas • Operações Histogrâmicas
Transformação da Escala de Cinza II • Operações Aritméticas • Adição • Subtração • Multiplicação • Divisão • Máximo • Mínimo
Transformação da Escala de Cinza III • Exercício 01 • Implementar algoritmos que possibilitem ao usuário a execução de operações aritméticas sobre imagens • Para uma dada imagem indicada pelo usuário, as operações implementadas deverão considerar o uso de constantes ou de outras imagens • Considerar o uso de valores default, que possam ser úteis para as escolhas do usuário
Transformação da Escala de Cinza IV • Operações Lógicas • AND • OR • NOT • XOR • NAND • NOR
Transformação da Escala de Cinza V • Exercício 02 • Implementar algoritmos que possibilitem ao usuário a execução de operações lógicas sobre imagens • Para uma dada imagem selecionada pelo usuário, as operações implementadas deverão indicar claramente o efeito resultante
Transformação da Escala de Cinza VI • Operações Histogrâmicas • Expansão/ Compressão de Contraste • Equalização Histogrâmica
Transformação da Escala de Cinza VII • Expansão Linear de Contraste ncs ncs 14 12 10 8 6 4 2 0 0 2 4 6 8 10 12 14 (ncs) nce hs (nce) he 0 2 4 6 8 10 12 14 nce
Transformação da Escala de Cinza VIII • Expansão Linear de Contraste - Exemplo
Transformação da Escala de Cinza XI (nce) h 255 (ncs) h 0 nce 255 ncs ncs 255 255 0 0 255 nce 255 • Inversão Linear de Contraste
Transformação da Escala de Cinza X • Inversão Linear de Contraste - Exemplo
Transformação da Escala de Cinza XI ncs 255 a6 a5 a4 a3 a2 a1 0 nce 255 • Expansão de Contraste Linear por Partes I Pontos de Quebra
Transformação da Escala de Cinza XII ncs ncs 255 255 0 0 nce nce 255 255 • Expansão de Contraste Linear por Partes II Expansão de Componentes Escuras com Compressão de Componentes Claras Expansão de Componentes Claras com Compressão de Componentes Escuras
Transformação da Escala de Cinza XIII • Expansão de Componentes Escuras com Compressão de Componentes Claras – Exemplo EECC
Transformação da Escala de Cinza XIV • Compressão de Componentes Escuras com Expansão de Componentes Claras – Exemplo CEEC
Transformação da Escala de Cinza XV • Exercício 03 • Implementar um algoritmo que possibilite ao usuário a configuração do processo de realce linearde contraste de imagens • Oferecer 2 modos de configuração da transformação linear • Gráfico, através do qual o usuário construirá a curva associada à transformação desejada • Não gráfico, a partir do qual o usuário selecionará uma dentre um grupo de transformações possíveis e definirá constantes que a caracterizarão
Transformação da Escala de Cinza XVI • Expansão de Contraste Não-Linear I Assíntotas ncs ncs 255 255 (Knce) ncs=C .e +C 2 1 ncs =C .log(Knce)+C 2 1 C1 + C2 C 1 1/K 1/K 0 0 nce nce 255 255 Expansão de Componentes Escuras com Compressão de Componentes Claras Expansão de Componentes Claras com Compressão de Componentes Escuras
Transformação da Escala de Cinza XVII • Expansão de Contraste Não-Linear II - Exemplo EECC
Transformação da Escala de Cinza XVIII • Expansão de Contraste Não-Linear II - Exemplo CEEC
Transformação da Escala de Cinza XIX • Exercício 04 • Implementar um algoritmo que possibilite ao usuário a configuração do processo de realce não linear de contraste de imagens • Oferecer 2 modos de configuração da transformação linear • Gráfico, através do qual o usuário construirá a curva associada à transformação desejada • Não gráfico, a partir do qual o usuário selecionará curvas pré-definidas que caracterizarão a transformação desejada (vide Fig. 3.6 do Gonzalez e Woods)
Transformação da Escala de Cinza XX • Equalização Histogrâmica I • Propósito Produção de uma imagem com valores de brilho igualmente distribuídos ao longo de toda a escala de brilho • Efeito Realce do contraste dos valores de brilho próximos aos máximos do histograma e redução do contraste daqueles próximos aos mínimos • Geração de melhores resultados do que a expansão de contraste típica, além do que a estratégia é totalmente automática
Transformação da Escala de Cinza XXI j j å å = H(ncsi ) H(ncei) = = 0 0 i i • Equalização Histogrâmica II • H(nce) o histograma de entrada e [ncemin, ncemax ] a faixa de níveis de cinza registrada na imagem de entrada • Propósito Mapeamento monotônico dos valores de brilho dos pixels, tal que o histograma de saída H(ncs) seja uniforme ao longo da escala de cinza de saída [ncsmin, ncsmax ]
Transformação da Escala de Cinza XXII MN f ( ncs ) = - ncs ncs 0 k • Considerações • Sejam imagens com M linhas e N colunas • Equalização do Histograma Função densidade de probabilidade uniforme com valor constante
Transformação da Escala de Cinza XXIII ncs ncs ò 1 ò f ( s MN ds = = ) ds - ncs ncs ncs ncs k 0 0 0 MN (ncs - ncs0) nce ò = H ( s ) ds - ncs ncs nce k 0 0 • Obtenção do histograma equalizado Densidade de probabilidade contínua “idealizada”
Transformação da Escala de Cinza XXIV - ncs ncs - ncs ncs nce nce ò ∑ k 0 ncs + ncs0 = H ( s ) ds k 0 ncs + ncs0 = H ( i ) MN MN nce 0 i = nce0 • Derivação da transformação de brilho dos pixels • Aproximação discreta da transformação contínua de brilho dos pixels Histograma Cumulativo
Transformação da Escala de Cinza XXV - Nc 1 H [ nce ] T(nce ) = rnd c NM • Algoritmo I • Para uma matriz de imagem N x M com Nc níveis de cinza, computar o histograma da imagem He • Para o histograma cumulativo HC HeC [0] = He[0] HeC [nce] = He[nce – 1] + He[nce], para nce = 1, …, Nc • Determinar
Transformação da Escala de Cinza XXVI ncs = T(nce ) • Algoritmo II • Reler os níveis de cinza dos pixels da imagem de entrada • Para cada nível de cinza relido, calcular o pixel da imagem de saída a partir de
Transformação da Escala de Cinza XXVII • Exemplo I
Transformação da Escala de Cinza XXVIII • Exemplo II
Transformação da Escala de Cinza XXIX • Exercício 05 • Implementar um algoritmo que possibilite ao usuário a execução do processo de equalização do histograma de imagens previamente selecionadas e a visualização dos resultados do processamento
Relações Básicas de Pixels I x (0,0) y • Método Convencional de Indexação (x-1,y-1) (x,y-1) (x+1,y-1) (x-1,y) (x,y) (x+1,y) (x-1,y+1) (x,y+1) (x+1,y+1)
Vizinhanças de um Pixel I x (0,0) y • Vizinhança4-conectada (x,y-1) (x-1,y) (x+1,y) (x,y-1) (x,y+1) N4(p) = (x-1,y) P (x+1,y) (x,y+1) q Î N4(p)⇒p Î N4(q)
Vizinhanças de um Pixel II x (0,0) y • Vizinhança8-conectada (x-1,y-1) (x,y-1) (x+1,y-1) (x-1,y) (x+1,y) (x-1,y+1) (x,y+1) (x+1,y+1) (x-1,y-1) (x,y-1) (x+1,y-1) (x-1,y) P (x+1,y) N8(p) = (x-1,y+1) (x,y+1) (x+1,y+1)
Vizinhanças de um Pixel III x (0,0) y • VizinhançaDiagonal (x-1,y-1) (x+1,y-1) (x-1,y-1) (x+1,y-1) (x-1,y+1) (x+1,y+1) P ND(p) = (x-1,y+1) (x+1,y+1)
Filtragem Espacial I • Otimização do processo de visualização para a interpretação visual conforme o contexto • Otimização das características da imagem para interpretação automática
Filtragem Espacial II • Redução de ruído • Discriminação de características • contornos • regiões • textura
Filtragem Espacial II Suavização Regiões Contornos Aguçamento de Bordas • Operadores de Vizinhança • Transformação dos pixels • Consideração da correlação espacial
Filtragem Espacial III 0 Preto Tons de cinza Transformação 255 Branco Parâmetros
Filtragem Espacial IV M - 1 N - 1 å å Is ( x , y ) = Ie(x,y) ⊗m(i,j) = Ie ( x – i , y – j ). m ( i , j ) = = i 0 j 0 • Convolução Espacial • Transformações Lineares e Não Lineares
Filtragem Espacial V • Classes de Filtros • Lineares • Não Lineares • Homomórficos • Morfológicos
Filtragem Espacial VI 1/a a 1/a • Máscara ou Kernel I • matriz de pesos • Exemplo Filtro box • m(i,j) = 1/a2 , se (0 i a) e (0 j a)
Filtragem Espacial VI 1 1 1 1 1 1 m[i, j] =1/9 1 1 1 1 1 1 1 1 1 1 1 1 • Máscara ou Kernel II • Filtro box discreto (3 × 3)a2=9 Entrada Saída ×1/9 ×1/9 ×1/9 ×1/9 ×1/9 ×1/9 Is [x,y] ×1/9 ×1/9 ×1/9
Filtragem Espacial VII • Algoritmo s = 0; for (i= -n; i<=n; i++) for (j= -n; j<=n; j++) s += ie[x+i, y+j] * m[i,j]; is[x,y] = s; • Máscara 3 × 3n=1
Filtragem Espacial VIII • Aplicações • Suavização (box, gaussiano) • Detecção de Bordas (Prewitt, Sobel, Laplaciano) • Realce de Bordas • Gradiente
Suavização I Borda original mais claro mais escuro Linha de entrada 10 11 10 9 10 5 6 5 4 5 filtro box1 × 3 10 10 10 10 8 7 5 5 5 5 Linha de saída Borda suavizada