Detection de formes

Signaler
Messages postés
10
Date d'inscription
mardi 20 janvier 2009
Statut
Membre
Dernière intervention
8 juin 2010
-
Messages postés
10
Date d'inscription
mardi 20 janvier 2009
Statut
Membre
Dernière intervention
8 juin 2010
-
Bonjour,

J'aurais besoin de votre aide pour détecter la forme rectangle, triangle et rond car mon code fonctionne actuellement avec un nombre de pixel défini et je souhaiterais pouvoir detecter les formes sans avoir a mettre le nombre de pixels pile. Mais mon probleme est que le rond, le rectangle et le triangle on a peux pres 2000 voir 1000 octets de différences comment puis je faire? Merci d'avance de vos réponses

Mon code actuel est le suivant:

 if((compteurN 13191)||(compteurN 43662))
{
//! Affichage a l'écran que la pièce est ronde
cout << "La forme est ronde avec : " << compteurN << " octets" <<endl;
//! Ecriture de la forme avec son nombre de pixel noir dans fichier 1
fichier1 << "La forme est ronde avec : " << compteurN << " octets" <<endl;
cout << endl;
}
//! Sinon Si le compteur N est egale a la valeur 1 ou la valeur 2 ou la valeur 3 alors faire la traitement
else if ((compteurN 27123)||(compteurN 70944)||(compteurN == 56622))
{
//! Affichage a l'écran que la pièce est rectangulaire
cout << "La forme est rectangulaire avec : " << compteurN << " octets" <<endl;
//! Ecriture de la forme avec son nombre de pixel noir dans fichier 1
fichier1 << "La forme est rectangulaire avec : " << compteurN << " octets" <<endl;
cout << endl;
}
//! Sinon Si le compteur N est egale a la valeur 1 ou la valeur 2 alors faire la traitement
else if ((compteurN 29082)||(compteurN 58560))
{
//! Affichage a l'écran que la pièce est triangulaire
cout << "La forme est triangulaire avec : " << compteurN << " octets" <<endl;
//! Ecriture de la forme avec son nombre de pixel noir dans fichier 1
fichier1 << "La forme est triangulaire avec : " << compteurN << " octets" <<endl;
cout << endl;
}

//! Sinon si compteur N ne correspond pas au 3 autres choix alors la forme est inconnue
else
{
//! Affichage a l'ecran que la forme est inconnue
cout << "La forme est inconnu avec : " << compteurN << " octets" <<endl;
//! Ecriture de la forme inconnue avec son nombre de pixel noir dans fichier 1
fichier1 << "La forme est inconnu avec : " << compteurN << " octets" <<endl;
cout << endl;
}	
}
}
}
 


Mes formes sont fixées a rectangle, triangle et ronde, ce que je cherches a faire c'est de detecter la forme d'une piece, car ma piece apres le seuillage est noire et le fond est blanc c'est pour cela que j'ai utilisé un nombre de pixel de couleur noir. Car avec les ombres des machine le nombre de pixels noir sur l'image augmente.

Ce que je veux faire c'est par exemple si on met un rectangle le reconnaitre peux importe sa taille et pareil avec les autres formes, mais dans mon code actuel le nombre de pixel est assez proche entre le triangle et le rectangle, donc si on me met un rectangle un px plus grand le nombre de pixel sera le meme que le triangle.

Merci d'avance de vos reponses

5 réponses

Messages postés
10
Date d'inscription
mardi 20 janvier 2009
Statut
Membre
Dernière intervention
8 juin 2010

Personne?
Messages postés
14942
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
20 janvier 2021
93
Hello,
Je ne pense pas que ce soit une bonne idée de se baser sur le nombre de pixels pour définir une forme...
Il faut plutôt que tu définisses des règles pour tes formes. En gros:
- rectangle = forme avec des angles droits, ou approchant
- triangle = forme avec 3 angles (ou changement de direction)
- cercle = pas de ligne droite


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
10
Date d'inscription
mardi 20 janvier 2009
Statut
Membre
Dernière intervention
8 juin 2010

D'accord je vais essayer ca, mais aurais tu un exemple sous la main de se que tu me dis de réalisé pour que je comprendre le principe de ton idee.

Merci d'avance
Messages postés
1
Date d'inscription
lundi 7 juin 2010
Statut
Membre
Dernière intervention
7 juin 2010

Tu devrais te pencher vers la transformée de Hough en traitement d'images. C'est un outil particulièrement adapté pour la situation que tu rencontres.
Messages postés
10
Date d'inscription
mardi 20 janvier 2009
Statut
Membre
Dernière intervention
8 juin 2010

Oui mais comment utiliser cette methode?