PANDORE Version 6 | GREYC-IMAGE |
L'opérateur pderavi permet de multiseuiller l'image initiale im_in par classification des pixels selon l'algorithme de Deravi.
Cet algorithme est basé sur le calcul de la matrice de co-occurence Tkl non symétrique défini avec les voisins 0 et 6:
Si im_in[x, y+1] == im_in[voisin(x+1, y)] alors T[im_in(x,y)][im_in(y+1,x)[] +=1;
Pour chaque niveau de gris n de [0..N-1], on calcule la probabilité conditionnelle de transition P(n) entre deux régions séparées par le niveau de gris n par:
- P1(n) = [Somme_k(Somme_l((Tkl)*(Tkl))] / [Somme_k(Somme_l(Tkl))+ Somme_p(Somme_q(Tpq))]
avec k=[0..n], l=[n+1..N-1] et p=[0..n], q=[0..n]
- P2(n) = [Somme(Somme((Tkl)*(Tkl))] / [Somme(Somme(Tkl))+ Somme(Somme(Tpq))]
avec k=[n+1..N-1], l=[0..n] et p=[n+1..N-1], q=[n+1..N-1]
- P(n) = (P1(n) + P2(n) ) / 2;
La recherche des minima locaux de P(n) se fait sur une plage de length niveaux de gris de part et d'autre du niveau de gris n.
Remarque: Cet opérateur ne fonctionne que sur des images de Char parce qu'il faut que les transitions Tkl soient significatives (ie, nombre de (k,l) restreints). Il faut donc s'arranger pour transformer les autres types d'images en image de Uchar.
L'image de sortie im_out est contruite avec les seuils détectés, telle que:
im_out[y][x]=seuil[k] si seuil[k-1]<im_out[y][x]<=seuil[k].
Le dernier seuil est égal à la valeur maximale 255.
Retourne le nombre de seuil détectés.
Segmente l'image tangram.pan et affiche le nombre de classes detectées:
pderavi 15 tangram.pan out.pan pstatus
F. Deravi et al., "Gray level thresholding using second-order statistics", Pattern Recognition Letter, Vol. 1, No. 5-6, pp. 417-422, 1983.
Auteur: Régis Clouard