J'ai essayé de détecter des formes dans une imageet déterminez également le nombre de formes de ce type présentes dans une image, par exemple un signe plus. Existe-t-il des fonctions intégrées pour détecter de telles formes? Si n'importe s'il vous plaît faites le moi savoir.
Je vous remercie.
Réponses:
1 pour la réponse № 1Vous devez rechercher tous les contours dans une image, puis les filtrer.
Nous savons que le signe plus a 12 coins. Vous devez donc filtrer tous les contours comportant 12 angles. Bien sûr, cela peut parfois vous donner des objets indésirables. Ainsi, vous pouvez filtrer à nouveau les contours dont les angles sont compris entre 2 lignes (3 angles) avec une valeur maximale de 0,3 cos par exemple.
Jetez un coup d’oeil à squares.cpp dans le répertoire samples d’OpenCV. Il trouve tous les contours avec 4 coins et angles max. 0,3 cos. Donc à peu près tous les carrés.
0 pour la réponse № 2
Vous pouvez également jeter un coup d'œil à la transformation de Hough.
0 pour la réponse № 3
Une façon de détecter les formes consiste à utiliser cvBlobsLib.
Une bibliothèque pour effectuer des images binaires connectéesétiquetage des composants (similaire à la fonction regionprops de Matlab). Il fournit également des fonctions manipuler, filtrer et extraire les résultats des blobs extraits, voir la section caractéristiques pour plus d'informations.
Pour un exemple, voir: https://www.youtube.com/watch?v=Y8Azb_upcIQ
Une alternative est de faire usage de EmguCV
Emgu CV est une plate-forme transversale.Net wrapper à l'image OpenCV bibliothèque de traitement. Autoriser les fonctions OpenCV à être appelées à partir de .NET langages compatibles tels que C #, VB, VC ++, IronPython, etc. peut être compilé en Mono et exécuté sur Windows, Linux, Mac OS X, iPhone, iPad et appareils Android.