Você está na página 1de 7

Processamento de Imagens

By Vania V. Estrela (UFF-TELECOM), Joaquim T. de Assis(IPRJ-UERJ



Tcnicas de Modificao de Histograma

O histograma de uma imagem, que uma propriedade do contedo da informao
contida na mesma, bastante utilizado em processamento de imagens digitais por ser de
fcil operao.
O histograma de nveis de cinza de uma imagem digital uma funo que apresenta,
para cada nvel, o nmero de pixels da imagem que tem aquele valor de cinza. Na abscissa
esto os nveis de cinza e na ordenada a freqncia de ocorrncia.
O histograma de uma imagem digital com nveis de cinza no intervalo [0,L-1] uma
funo discreta p(r
k
)=n
k
/n, onde r
k
o k-simo nvel de cinza, n
k
o nmero de pixels na
imagem que tem o nvel de cinza k, n o nmero total de pixels da imagem, e k=0,...,L-1.




Figura 1 Histograma de nveis de cinza da imagem padro cameraman.

Figura 2 Histograma de nveis de cinza da imagem padro pout.



Quando uma imagem condensada em um histograma, toda a informao espacial
perdida. O histograma especifica o nmero de pixels que tm um certo valor de cinza, mas
no informa onde estes pixels esto localizados na imagem. Portanto, cada imagem tem um
histograma prprio, mas duas ou mais imagens podem ter o mesmo histograma. Ento,
algumas operaes geomtricas (por ex. espelhamento), no afetam o histograma da
imagem.
Uma propriedade importante que a soma de todos os nveis de cinza da imagem
tem o mesmo valor da rea da imagem (nmero total de pixels). Outra que se um objeto
est numa tonalidade acima de um certo valor de cinza, o somatrio do histograma para
valores acima desse limiar a rea do objeto.
As operaes sobre histograma permitem obter informaes que, apesar de
presentes na imagem, no estavam visveis inicialmente. Dentre estas podemos destacar a
transformao de intensidade, a equalizao, especificao e a limiarizao.
Na transformao de intensidade til quando desejamos ressaltar uma determinada
faixa de valores de tons de cinza para melhor definir uma parte da cena. Um conjunto de
operaes pode ser realizado na transformao, quase sempre na forma de seleo de parte
do histograma e sua ampliao em forma linear e no-linear. Como exemplo, poderamos
pegar a imagem do co e selecionar apenas os tons menores que 100 e depois ampliar a
escala para 256, essa uma das formas de expanso. Isso provocaria uma melhor
distribuio dos tons escuros. Essa multiplicao poderia ser tambm se por uma funo
no-linear em que os tons receberiam valores diferentes de expanso. Na compresso,
haveria apenas uma transformao de escala entre os valores de cinza dos pixels,
permitindo uma maior distino dos tons apresentados.


Equalizao de Histograma

A idia geral: mapear o histograma da imagem dada para o histograma desejado. Trata-se
de uma operao no-linear sobre os nveis de cinzada imagem de modo a melhor-la ou
modific-la.
A equalizao de histograma uma das operaes mais comuns encontradas em
programas de processamento de sinais. Sua aplicao se d para tornar mais perceptveis
informaes contidas e pouco visveis em imagens escuras.
Se r no intervalo[0,1], representa os tons de cinza de uma imagem que se quer
processar, sendo r=0 o preto e r=0 o branco, vamos definir a transformao:

) (r T s =

que produz um nvel s para todo nvel r na imagem original. Se essa transformao satisfaz
a:

a) T(r) nica e crescente no intervalo 1 0 s s r ;
b) 1 0 1 ) ( 0 s s s s s para r T .

A condio (a) preserva a ordem do preto para branco na escala de cinza e a condio
(b) garante o mapeamento consistente com o intervalo permitido.
A transformao inversa de s em r pode ser escrita como:

1 0 ) (
1
s s =

s s T r
onde podemos assumir que T
-1
(s) tambm satisfaz as condies (a) e (b).
conhecido da teoria de probabilidade que se p(r) e T(r) so conhecidos e T
-1
(s)
satisfaz condio (a), a funo densidade de probabilidade que transforma os nveis de
cinza :
) (
1
) ( ) (
s T r
ds
dr
r p s p

=
(

=
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);

Você também pode gostar