Matrice di co-occorrenza

Da testwiki.
Vai alla navigazione Vai alla ricerca

La matrice di co-occorrenza (o anche GLCM Gray - Level Co-occurrence Matrix) è una matrice definita per un'immagine digitale.

Definizione

In matematica la matrice di co-occorrenza C è definita per un'immagine I di dimensioni n x m, parametrizzata da un offset (Δx,Δy), come:

CΔx,Δy(i,j)=p=1nq=1m{1,se I(p,q)=i I(p+Δx,q+Δy)=j0,altrimenti

il valore dell'immagine si riferisce al valore di grigio dello specifico pixel. Il valore può essere qualsiasi, da un numero binario ad un valore di 32 bit per un'immagine a colori. Da notare che un'immagine a 32 bit genera una matrice di 232×232.

Una matrice di co-occorrenza misura le tessiture (texture mapping) dell'immagine. È inoltre possibile definire una matrice che può essere usata per il color mapping, ovvero per colorare un'immagine partendo da un'altra.

Inoltre, bisogna prestare attenzione alla parametrizzazione con (Δx,Δy), che rende la matrice sensibile alle rotazioni.

Codice

Una funzione MATLAB per il calcolo di questa matrice per due immagini binarie (valori 0 e 1), e':

function M=getCoMatrix(M1,M2)
  M = zeros(2); % restituisce una matrice binaria 2x2 .
  [r,c] = size(M1);

  for i=1:r
      for j=1:c
          v1 = M1(i,j)+1; % Aggiunge "1" al valore dell'immagine binaria, per ottenere l'indice della matrice.
          v2 = M2(i,j)+1;
          M(v1,v2) = M(v1,v2)+1; % Incrementa il valore della matrice di co-occorrenza.
      end
  end

Collegamenti esterni

Template:Portale