Traitement d'image:squelettisation [Résolu]

Messages postés
8
Date d'inscription
vendredi 25 décembre 2009
Statut
Membre
Dernière intervention
21 janvier 2010
- - Dernière réponse : brahimmjr
Messages postés
1
Date d'inscription
dimanche 16 janvier 2011
Statut
Membre
Dernière intervention
29 mars 2011
- 29 mars 2011 à 12:43
salut,s'il vous plait je veux savoir une explication sur les condition de l'algorithme de squelettisation de zhang et suen ou un lien pour un code .merci d'avance.
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
3
Date d'inscription
dimanche 25 mars 2007
Statut
Membre
Dernière intervention
13 mai 2009
3
Merci
merci atout


/* Zhang-Suen thinning */

int y [256][256];

main()
{

int i,j,k,n,m;
int im[256][256];


/* Read the glyph */
scanf ("%d", &n); scanf("%d", &m);
for (i=0; i<n; i++)="" {="" for="" (j="0;" j<m;="" j++)="" scanf="" ("%d",="" &k);="" im[i][j]="k;" }="" iputim="" (im,="" n,="" m);="" thin_b="" (image,n,m)="" int="" image[256][256],n,m;="" i,j;="" (i="0;" i<n;="" if="" (image[i][j]="">= 100) image[i][j] = 9;
printf ("%3d", image[i][j]);
}
printf ("\n");
}
}


thin_b (image,nn,mm)
int image[256][256], nn,mm;
{
/* Thinning algorithm: CACM 1984 march (Zhang and Suen) */

int i,j,n,m,k, cont, br,ar,p1,p2, t1a();
int a[8];

printf ("Thinning algorithm: CACM 1984 march (Zhang and Suen) \n");
cont = 1;
while (cont) {
printf ("+\n");
cont = 0;

/* Sub-iteration 1: */
for (i=0; i=2) && (br<=6)) &&
(p1 0) && (p2 0) ) {
y[i][j] = 1;
cont = 1;
}
else y[i][j] = 0;
}
subtr (y, image,nn,mm);

/* Sub iteration 2: */
for (i=0; i=2) && (br<=6)) &&
(p1 0) && (p2 0) ) {
y[i][j] = 1;
cont = 1;
}
else y[i][j] = 0;
}
subtr (y, image,nn,mm);
}
}

subtr (a, b, n,m)
int a[256][256], b[256][256],n,m;
{
int i,j;

for (i=0; i= 0) {
a[0] = image[i-1][j];
if (j+1 < mm) a[1] = image[i-1][j+1];
if (j-1 >0) a[7] image[i-1][j-1];
}
if (i+1 < nn) {
a[4] = image[i+1][j];
if (j+1 < mm) a[3] = image[i+1][j+1];
if (j-1 >0) a[5] image[i+1][j-1];
}
if (j+1 < mm) a[2] = image[i][j+1];
if (j-1 >0) a[6] image[i][j-1];

m0; *b 0;
for (n=0; n<7; n++) {
if ((a[n]==0) && (a[n+1]==1)) m++;
*b = *b + a[n];
}
if ((a[7] == 0) && (a[0] == 1)) m++;
*b = *b + a[7];
return m;
}

/* End of method B */
</n;>

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 111 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_infsaid
Messages postés
7
Date d'inscription
mardi 21 avril 2009
Statut
Membre
Dernière intervention
27 avril 2010
1
1
Merci
je veux programmer cette méthode avec Matlab.Aidez-moi s'il vous plait.
merci
Commenter la réponse de fatmabouzidi
Messages postés
1
Date d'inscription
dimanche 16 janvier 2011
Statut
Membre
Dernière intervention
29 mars 2011
0
Merci
est ce que sur
Commenter la réponse de brahimmjr