-
Puisque l'image contient un fond noir avec un disque blanc, si tu cherche à calculer le centre du disque, cela revient à calculer le centre de gravité de l'image.
La formule est :
Xc = {somme(i, avec i=1 -> nbre de lignes)[si m(i,j) est blanc} / nbre de pixel blanc dans l'image
Yc = {somme(j, avec j=1 -> nbre de colonnes)[si m(i,j) est blanc} / nbre de pixel blanc dans l'image
-
nightwar ta solution avec l'algorithme de la transformée de Hough généralisée me semble plutot bien, pourrais-tu si tu as un moment me l'expliquer un peu mieux?
J'ai regarder un peu sur le net mais je ne comprend pas vraiment tout..
-
Dis merci à jbleCanard, l'idée vient de lui.
Pose toi juste une question avant de te lancer la dedans. As-tu besoin d'un algorithme de ce calibre la ? Pour en avoir codé une transformée de hough est fastidieuse en contre partie très puissante.
Pour t'éclairer le principe est très simple, tu transforme les caractéristiques de ton image dans un espace dit de hough ou il est plus facile de trouver ce que tu cherche. C'est vraiment simplifié mais c'est le principe. Avec cette transformée tu est capable de trouver tous les cercles d'une image par exemple. Wikipédia est pauvre en transformée de Hough généralisée ( car a la base elle sert pour la détection de lignes ).
Je te conseille vivement d'utiliser des implémentations déjà faite (OpenCV), mais cela te demandera de te familiariser avec cette bibliothèque.
-
Arf!
kmaniche, nightwar, vos deux propositions me semblent intéressantes!
Reste à voir laquelle serait la plus simple a mettre en oeuvre pour mon type d'application..:?
-
Salut
voilà qui me parle un peu plus ! On est donc bien en plein dans la vision :mrgreen:. En revanche, je ne vois toujours pas pourquoi tu peux dans ton application disposer de l'image avec uniquement le cercle blanc. Si c'est une image traitée depuis une caméra, retirer ces cercles est aussi difficile que ce que tu veux faire.
Comme le dit nightwar, la fameuse transformée de Hough est un outil un peu massif au vu du problème, mais pas besoin de la coder soi même. Autrement dit : ce serait dommage de faire un Hough sans comprendre au moins mathématiquement comment ça marche, mais faut pas hésiter à prendre une lib en production.
Es-tu en charge du traitement complet de l'image depuis la caméra, ou est ce que on te balance l'image binarisée et demerden zie zich avec ?
J'ai l'impression en te lisant que tu codes vraiment tout toi même, y compris la structure de données qui porte une matrice pour faire tes traitements. Est ce le cas ?
Dois tu privilégier la précision ou la rapidité ? Je dirais la précision à priori, car si tu place les vis à côté :aie:
Au niveau simplicité de mise en oeuvre et de compréhension, la solution de kmaniche est la plus simple. Et elle devrait en théorie également fonctionner même si les cercles noirs sont présents, sinon ça voudrait dire que ta jante est déséquilibrée.
L'avantage d'une transformée de Hough est par contre qu'elle va te donner directement tous les cercles et leurs coordonnées, qu'elle fonctionnera bien sur des images dégradées, etc.
Dans tous les cas, dont worry, on va y arriver :mouarf:
A part : A propos d'OpenCV, je trouve qu'on y met très vite les mains. Je suis en train de jouer avec chez moi et je m'éclate.
-
lol. J'aime les petits PS en taille inferieur a la fin de tes messages.
Oui OpenCV est vraiment complet et facile d'utilisation. Je l'utilise massivement.
On attend de tes nouvelles pour le calcul du centre de gravite et pour les reponses aux precedentes questions.