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.