Escolar Documentos
Profissional Documentos
Cultura Documentos
=
(
=
Vamos considerar a seguinte transformao:
}
= =
r
dw w p r T s
0
) ( ) (
Essa transformao produz a funo distribuio cumulativa (CDF) de r. As
condies (a) e (b) so satisfeitas, j que esta uma funo crescente em [0,1]. A derivada
de s em relao r dada por:
) (r p
dr
ds
=
e
1 0 1
) (
1
) ( ) (
) (
1
s s =
(
=
s
r p
r p s p
s T r
que uma densidade uniforme no intervalo de definio da transformada. Este resultado
independente da funo de transformao.
Na aplicao em um intervalo [0,L-1], temos que fazer:
1 ,..., 1 , 0 1 0 ) ( ) (
) (
1
= s s = =
=
=
L k e r r p r T s
n
n
r p
k
k
j
j k k
k
k
Como os valores tm de ser escalados no intervalo [0,L-1], pode-se usar a seguinte
funo de re-escalonamento para tal:
(
= 5 . 0
)) (
) (
) 1 (
0
0
s s
s s
L trunc s
L
k
N
k
Como exemplo, vamos tomar a seguinte tabela elaborada a partir de uma imagem
8x8 com 8 tons de cinza:
k n
k
p(r
k
) s
k
s
k
N
0 8 0.125 0.125 0
1 0 0.000 0.125 0
2 0 0.000 0.125 0
3 0 0.000 0.125 0
4 31 0.484 0.609 4
5 16 0.250 0.859 6
6 8 0.125 0.984 7
7 1 0.016 1.000 7
A limiarizao de histograma caracterizada pela definio de um nvel mnimo m,
para o qual todos os pixels de tonalidade k, tal que k<m so colocados igual a zero.
(a) (b)
Figura 3 (a) Imagem Original e (b) Imagem aps equalizao
Histogramas em MATLAB
Exemplo 1: O script abaixo
x = -4:0.1:4;
y = randn(10000,1);
hist(y,x);
Gera o seguinte histograma:
-5 -4 -3 -2 -1 0 1 2 3 4 5
0
50
100
150
200
250
300
350
400
450
Exemplo 2: Seja uma imagem em tons de cinza i, previamente carregada. Seu histohrama
pode ser obtido com o script abaixo:
i = imread('cameraman.tif', 'tif');
i=rgb2gray(i); % Omitir se houver apenas um canal
subplot(2,2,1);
imshow(i);
imhist(i);
subplot(2,2,2);
imshow(i);
Exemplo 3: A forma e os limites de um histograma podem ser modificados conforme a
seguir:
i = imread('cameraman.tif', 'tif');
i=rgb2gray(i); % Omitir se houver apenas um canal
subplot(3,2,1);
imshow(i);
subplot(3,2,2);
imhist(i);
i1=imadjust(i,[0.4 0.6],[0 1]);
i2=histeq(i);
subplot(3,2,3); imshow(i1);
subplot(3,2,4); imhist(i1);
subplot(3,2,5); imshow(i2);
subplot(3,2,6); imhist(i2);