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 

Votre réponse

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 144 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