Traitement d'image:squelettisation [Résolu]

Messages postés
8
Date d'inscription
vendredi 25 décembre 2009
Dernière intervention
21 janvier 2010
- 7 avril 2009 à 15:40 - Dernière réponse :
Messages postés
1
Date d'inscription
dimanche 16 janvier 2011
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
Dernière intervention
13 mai 2009
- 13 mai 2009 à 12:42
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;>

Merci cs_infsaid 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Commenter la réponse de cs_infsaid
Messages postés
7
Date d'inscription
mardi 21 avril 2009
Dernière intervention
27 avril 2010
- 16 févr. 2010 à 20:08
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
Dernière intervention
29 mars 2011
- 29 mars 2011 à 12:43
0
Merci
est ce que sur
Commenter la réponse de brahimmjr

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.