Processamento de Imagens Técnicas de Realce Equalização do Histograma Técnica de realce de imagem chamada de equalização de histograma; Melhorar o contraste de uma imagem digital. Equalização do Histograma Alargamento do contraste através da redistribuição dos níveis de cinza de forma uniforme. Os tons mais claro e mais escuro da imagem são mapeados para branco e preto, respectivamente, e os valores intermediários são distribuídos pela escala de cinza. Equalização do Histograma Aumentar o contraste geral na Imagem espalhando a distribuição de níveis de cinza. Exemplo: Dada uma Imagem de n x m Pixels e “g” níveis de cinza. No. Ideal de pixels para cada nível de cinza => I = (n x m)/g Cada nível de cinza tenha aproximadamente I representantes para cada nível, tornando a imagem mais uniforme, e de alto contraste. Equalização do Histograma O processo de equalização de histograma visa o aumento da uniformidade da distribuição de níveis de cinza de uma imagem, sendo usualmente empregado para realçar diferenças de tonalidade na imagem e resultando, em diversas aplicações, em um aumento significativo no nível de detalhes perceptíveis. Equalização do Histograma Equalização do Histograma Equalização Original, Equalizada (64) Equalizada (256) E seus histogramas Original, Equalizada (64) Equalizada (256) Realce no domínio do espaço Realce no Domínio do Espaço: o processamento de realce é realizado diretamente nos pixels da imagem. Realce no Domínio da Freqüência: o processamento de realce é realizado sobre o espectro de freqüências da imagem, utilizando a Transformada de Fourier. Realce no domínio do espaço As transformações de níveis de cinza de uma imagem que ocorrem diretamente sobre os seus pixels são chamadas de realce no domínio espacial. Dentre as técnicas de realce no domínio do espaço destacam-se dois tipos: realce ponto-a-ponto e realce por máscara. Realce no domínio do espaço Realce Ponto-a-Ponto: a técnica é aplicada em cada pixel da imagem, independentemente, sem considerar os valores dos pixels vizinhos. Realce por Máscara: a técnica é aplicada em uma região de pixels, onde se considera os valores dos pixels vizinhos que estão contidos dentro da região definida de acordo com a mascará aplicada. Envolve operação de convolução. Operadores ponto a ponto Cada ponto na imagem de entrada gera um só ponto na imagem de saída; Dentre as técnicas no domínio do espaço destacam-se realce ponto-a-ponto (thresholding) negativo, realce por mascara. Operadores ponto a ponto O Realce de Contraste e Brilho consiste em aplicar em todos os pixels da imagem f(x,y) um operador linear do tipo: g(x,y) = C. f(x,y) + B onde, C = contraste da imagem B = Brilho da imagem Operadores ponto a ponto Realce de contraste aplicado em uma imagem digital f de 8 bits e 256 níveis de cinza. A função aplicada é: g(x,y) = 2. f(x,y) + 32 Note que na função houve saturação dos valores de pixel da imagem, ou seja, a função g(x,y) produziu pixels com valores maiores que 255. A Figura mostra o resultado da aplicação da função g(x,y) = 2. f(x,y) + 32, mostrada em uma imagem digital. Resultado da aplicação da função g(x,y) = 2. f(x,y) + 32, em uma imagem digital. Thresholding O realce por Thresholding é também conhecido como limiarização ou binarização. Consiste em transformar todos os pixels de uma imagem de modo que eles tenham apenas 2 valores, preto e branco (0 e 1). A função pode ser definida como: g(x,y) = 0, se g(x,y) < T g(x,y) = 1, se g(x,y) ≥ T onde, T = Threshold. Exemplo de aplicação da função de thresholding em uma imagem digital. Binarização (“Thresholding) Binarização (“Thresholding) Negativo O Negativo de uma imagem é obtido aplicando-se, em todos os pixels da imagem f(x,y), um operador linear do tipo: g(x,y) = W - f(x,y) onde, W = Maior nível de cinza possível na imagem (para imagem de 8 bits / W = 255). Assim, todos os valores de pixel da imagem original são “invertidos”. Negativo Resultado da aplicação do Negativo, em uma imagem digital de uma mamografia. Exercícios Propostos 1. Explique a diferença entre processamento no domínio do espaço e processamento no domínio da freqüência. 2. Quais os tipos mais comuns de operadores ponto-a-ponto? 3. O que é saturação de uma imagem? Quando isso pode ocorrer? Prática 2 T_1: Ler a imagem mammogram.bmp e gerar seu histograma. f = imread('mammogram.bmp'); imfinfo mammogram.bmp imshow(f) imhist(f) E_1: Gerar o histograma anterior com 256 níveis de cinza em outros formatos: a) Formato de barras com 10 níveis de cinza função bar) [counts,x] = imhist(f,26) % 26 foi usado para aproximar 256/10 níveis bar(counts) b) Formato de hastes a cada 10 píxels (função stem) stem(counts) %cada haste está espaçada 10 níveis de cinza aproximadamente c) Formato de uma curva contínua (função plot) plot(x,counts) E_2: Alterar os Histogramas gerados anteriormente: a) Adicionando um título a cada histograma (função title) title('Bar-Hist') %title('Stem-Hist') %, title('Plot-Hist') b) Adicionando rótulos para os eixos (funções xlabel e ylabel) xlabel('Níveis de Cinza'), ylabel('Contagem de Pixels') c) Adicionando um texto na figura (função text) text(10,8000,'Contagem de pixels da imagem em 26 níveis de cinza') d) Expandindo a escala dos eixos horizontal e vertical (função axis) axis([0 500 0 15000]) E_3: Mostrar graficamente a Função de Transformação de Intensidades -T[f(x,y)] e a imagem gerada em cada um dos exemplos. g1 = imadjust(f, [0 1], [1 0]) imshow(g1); g2 = imadjust(f, [0.5 0.75], [0 1]) imshow(g2); g3 = imadjust(f, [ ], [ ], 2) imshow(g3); T_2: Equalizar a imagem polem.bmp dada na Figura 3. g = imread('polem.bmp'); figure, imshow(g) figure, imhist(g) ylim('auto') geq = histeq(g,256); figure, imshow(geq) figure, imhist(geq) ylim('auto') E_4: Fornecer para o Exemplo anterior (T_2) : a) Os dois histogramas (equalizado e não) b) As duas Imagens (equalizada e não) c) Comentar sobre a função e a necessidade da equalização d) Explicar o uso do comando ylin do MatLab e) O que acontece se a imagem equalizada for equalizada novamente? E_5: Executar e explicar o código de MatLab abaixo tanto relativo ao resultado obtido como a função de cada linha de comando. g = imread('polem.bmp'); Este comando faz a leitura da imagem, o (;) no final da linha impede que os valores da mesma sejam mostrados na Janela de Comando do MatLab. figure, imshow(g) Cria uma janela gráfica da imagem g. figure,imhist(g) Mostra o histograma de dados da imagem g. IMHIST(G) indica um histograma para a imagem G da intensidade cujo número dos bits é especificado pelo tipo da imagem. Se G for uma imagem da escala de cinza, IMHIST usa 256 bits como um valor default. Se G for uma imagem binária, IMHIST usa somente 2 bits. ylim('auto') limita o eixo y de forma padrão. hnorm = imhist(g)./numel(g); Numel – Número de elementos em um array ou expressão. cdf = cumsum(hnorm); CumSum – Soma cumulativa dos elementos x = linspace(0, 1, 256); Gera um vetor linearmente espaçado figure,plot(x,cdf) Plota a figura cdf em x axis([0 1 0 1]) Escala de eixo axis([xmin xmax ymin ymax]) set(gca, 'xtick', 0:.2:1) Define as propriedades do objeto, em relação ao eixo x. set(gca, 'ytick', 0:.2:1) Define as propriedades do objeto, em relação ao eixo y xlabel('Valores de Intensidade de Entrada', 'fontsize', 9) Insere no eixo x o título Valores de Instensidade de Entrada, com fonte nº 9. ylabel('Valores de Intensidade de Saída', 'fontsize', 9) Insere no eixo y o título Valores de Intensidade de Saída, com fonte nº 9. text(0.18, 0.5, 'Função de Transfomação', 'fontsize', 9) Insere o texto Função de Transformação, com fonte nº 9, na posição 0.18, 0.5. E_6: Alterações Globais no Brilho. a) Clarear a imagem polem.bmp de 128 níveis de cinza. e=imread('polem.bmp'); figure, imshow(e) eeq=histeq(e,128); figure, imshow(eeq) b) Equalizar as imagens (clareada e não) e gerar seus histogramas. Concluir a respeito. figure, imhist(eeq) figure, imshow(eeq) figure, imhist(e) figure, imshow(e) c) Concluir Conclusão - no histograma equalizado é visivelmente nítida a distribuição dos níveis de cinza (o que cria um maior contraste na imagem), enquanto no outro observa-se uma menor distribuição, havendo assim uma maior concentração nos níveis de cinza próximos a zero.