Você está na página 1de 5

E\$QGUp/XL]%UD]LO

Matrizes de co-ocorrncia no MathLab



O reconhecimento de texturas em imagens uma atividade importante,
que faz parte de uma vasta gama de aplicaes em diversas reas. Dentre elas
podemos citar o diagnstico mdico, a automao industrial, o reconhecimento
biomtrico, sensores remotos e outras.
A idia inicial do reconhecimento de texturas, assim como outras
atividades da rea de anlise de imagens, consiste em extrair da imagem
algumas caractersticas que permitam realizar posteriormente um
discernimento, uma tomada de deciso ou uma classificao.


Vetor de caractersticas

Para reconhecimento de texturas (em uma classificao eficiente das
texturas) se faz necessrio a extrao de algumas caractersticas importantes
da imagem original, de forma a possibilitar a correta distino e classificao
das texturas.

Matriz de co-ocorrncia de tons de cinza

uma matriz bidimensional, gerada a partir da contagem das
ocorrncias das combinaes entre os tons de cinza do pixel analisado de um
pixel vizinho.
Para cada uma das combinaes possveis entre o pixel e o pixel vizinho
(normalmente o pixel direita, por default), ser criado um elemento na matriz
de co-ocorrncia de tons de cinza, de forma que o tamanho da matriz de co-
ocorrncia ser de t x t, onde t o nmero de tons presentes na imagem
original. A figura abaixo exemplifica melhor como ocorre o processo de
construo da matriz de co-ocorrncia de tons de cinza:



Repare que ao elemento (1,1) da matriz de co-ocorrncia de tons de
cinza foi associado um valor 1. Este valor 1 est representando a quantidade
de ocorrncias da combinao [1 1] existentes na imagem original. Como essa
combinao [1 1] ocorre apenas uma nica vez em toda a imagem, fica
armazenado no elemento (1,1) o valor 1. J para o elemento (1,2), foi colocado
o valor 2, que simboliza a existncia de 2 ocorrncias da combinao [1 2] na
imagem original.
A partir da matriz de co-ocorrncia de tons de cinza, algumas
caractersticas interessantes podem ser obtidas. So elas:

Caracterstica Descrio FrmuIa Matemtica
Contraste Retorna uma medida do contraste entre as
intensidades de um pixel analisado e do
pixel vizinho. A comparao realizada em
todos os pixels da imagem.
Para uma imagem constante (mesmo tom
de cinza em toda a extenso), o contraste
0 (zero).



Correlao Retorna uma medida de quo
correlacionado est um pixel com o seu
vizinho. A comparao realizada em
todos os pixels da imagem.

Faixa de valores possveis: -1 a 1
A correlao 1 para uma imagem
totalmente correlacionada ou -1 para uma
completamente descorrelacionada.



Energia Retorna a soma dos elementos elevados
ao quadrado dentro da matriz de co-
ocorrncia de tons de cinza.


Faixa de valores possveis: 0 a 1
A energia possui valor 1 para uma imagem
constante (mesmo tom de cinza em toda a
sua extenso).

Homogeneidade Retorna um valor que representa a
proximidade da distribuio dos elementos
em relao diagonal da matriz de co-
ocorrncia dos tons de cinza.
Faixa de valores possveis: 0 a 1
Um valore de Homogeneidade 1
representa uma matriz diagonal de co-
ocorrncia de tons de cinza.




O pixel vizinho a ser comparado com o pixel analisado, normalmente o
pixel a direita (default), mas podemos utilizar qualquer pixel vizinho, inclusive
alguns pixels com distncia de vizinhana maior que 1. Tambm podemos
trabalhar com mais de um pixel vizinho, criando uma matriz de vizinhana. A
figura abaixo explicar melhor como essa matriz de vizinhana pode ser
construda.


Com base na figura acima, poderamos ento, gerar a seguinte matriz
de vizinhana:

matriz_vizinhanca = [ 0 1; 0 2; 0 3; 0 4;...
-1 1; -2 2; -3 3; -4 4;...
-1 0; -2 0; -3 0; -4 0;...
-1 -1; -2 -2; -3 -3; -4 -4];

A ttulo de exemplo, podemos produzir no Matlab um grfico que cruza a
caracterstica de correlao com a vizinhana de pixels para a imagem abaixo:


Imagem a ser analisada


Grfico de correlao x vizinhana gerado no Matlab

Para a gerao do grfico acima, foi utilizada a matriz de vizinhana [0 1;
0 2; 0 3; 0 4], que corresponde a uma vizinhana de variando entre 1 e 4 pixels
direita (eixo horizontal). Repare que para uma vizinhana de apenas 1 pixel,
podemos visualizar um valor de correlao em torno de 0,5. Este valor vai
decaindo medida em que a distncia entre o pixel e o seu vizinho aumenta,
resultando num valor prximo de zero quando a distncia entre o pixel
analisado e o pixel vizinho de 4 pixels. O grfico mostra ento que h uma
certa correlao entre os pixels mais prximos da imagem, mas que a imagem
como um todo no homognea (vizinhanas mais distantes possuem
correlao prxima de zero).
Para gerar o grfico no Matlab, foram necessrios os seguintes
comandos:
I = imread(c:\matriz.gif);

vizinhanca = [0 1; 0 2; 0 3; 0 4];

GLCM = graycomatrix(I,Offset,vizinhanca);
stats = graycoprops(GLCM,Correlation);
figure, plot([stats.Correlation]);
title('Correlao x Vizinhana');
ylabel('Correlao');
xlabel('Vizinhana');


Referncias:
http://homepages.inf.ed.ac.uk/rbf/HIPR2/ (tutorial com tudo sobre analise de
imagens)
http://www.mathworks.com/access/helpdesk/help/toolbox/images/enhanc15.html#3
3707 (matriz de co-ocorrncia de nveis de cinza)
http://www.mathworks.com/access/helpdesk/help/toolbox/images/graycoprops.html
(caractersticas derivadas da matriz de co-ocorrncia de nveis de cinza)

Você também pode gostar