Salut à tous.
Je fait du traitement d'image, et j'aimerai savoir si certains d'entre vous connaissent une bonne explication à propos du principe de Hought ou assimilé (pour repérer un cercle sur une image).
Merci d'avance, Skip
Salut à tous.
Je fait du traitement d'image, et j'aimerai savoir si certains d'entre vous connaissent une bonne explication à propos du principe de Hought ou assimilé (pour repérer un cercle sur une image).
Merci d'avance, Skip
Bonjour
oui, je connais pour l'avoir déjà fais.Envoyé par skip78
Si tu fais un peu de bibliographie sur le net (google est ton ami ), on te dira que la transformée de hough opère un changement de dimension.
En ce qui concerne le problème du cercle sur des images :
- Tu choisis trois points aléatoirements.
- Tu calcules le centre du cercle passant par ces trois points (sauf si ils sont colinéaires).
- Tu sauvegarde ce centre quelque part.
- Tu réhitères ces opération un bon nombre de fois.
- Le centre du cercle cherché est le résultat obtenu le plus grand nombre de fois.
- Si tu as plusieurs cercles, tu prends les résultats apparaissant le plus.
Voilà...
bon courage...
Justement c'est pour ca que je commencais à m'inquieter Moi le changement de dimension ne m'interesse pas du toutEnvoyé par ToTo13
Oula tu as du sauter une étape làEnvoyé par ToTo13
Parce que moi j'ai une image, rectangulaire, et il y a un cercle quelque part dessus, mais pas forcement centré. Je vois pas en quoi l'algo dont tu parles peut, quoi qu'il en soir, donner le cercle recherché sans jamais regarder l'image
Pour l'algo que je recherche j'avais entendu dire qu'il prenait un cercle et qu'il le deplacait sur l'image jusqu'à l'avoir obtenu un truc du genre. Cela étant dit je ne peut pas travailler sur les couleurs, qui sont trop proches les unes des autres sur les images à traiter
Si vous avez une idée n'hésitez pas svp j'ai vraiment besoin de cette info merci
Bonjour,
c'est le principe même de la transformé de Hough, mais en réalité, si tu fais ce que je t'ai dit, c'est transparent.Envoyé par skip78
Ca marche très bien, comme ej te l'ai déjà dit, je l'ai programmé...Envoyé par skip78
Quand j'ai marqué que tu prenais des séries de trois points, je voulais dire trois points de l'image.
Ca c'est pas très beau et surtout beaucoup plus lent et complexe.Envoyé par skip78
Je peux te garantir que c'est parmis les méthodes les plus simples et les plus rapide pour retrouver un ou plusieurs cercles dans une image.
Bah je veut bien te croire mais je n'arrive pas à comprendre !
Pour récapituler, j'ai un cercle sur mon image, je prend 3 points aléatoirement sur mon image, je trace le cercle passant par ces 3 points et j'en stock le centre. En réitérant l'opération moultes fois, je suis confus mais le centre que tu obtiendras n'à absolument aucune raison de se situer là ou est centré le cercle que tu recherche !?!? Je dirais que tu obtiendras le centre de l'image
Enfin si tu as une preuve à l'appui je suis preneur mais si ca marche comme ca la logique atteint ses bornes là
Bonjour,
petites précisions :
- qu'y a t'il d'autre que le cercle sur ton image ?
- Est elle fortement bruitée ?
- le cercle aura t'il une couleur prédéfinie ?
- Est ce une image binaire ???
Pout tout te dire il s'agit d'une image radar, donc il y a beaucoup de dechets autour. Cependant le cercle reste parfaitement visible et se detache bien du reste de l'image. Il est blanc d'ailleurs. Mais d'autres points blancs existent sur l'image par conséquent je ne peut pas passer par la méthode du snake.
Bruitée je sais pas ce que c'est et elle n'est pas binaire mais je pense qu'il faudrait la binariser en effet. J'avais réalisé quelques test pas trés fructueux :S
Commences par détecter les contours.
A partir de là, la méthode décrite fonctionne très bien !
J'avais utilisé cet article à l'époque :
http://www.vieartificielle.com/article/index.php?id=188
C'est assez simple finalement .
Edit: tu ne sais pas ce qu'est une image bruitée, mais tu connais les snakes, Hough et consorts ?
Pas logique du tout ça
Mdr à vrai dire mon problème était bien de trouver les contours Une fois que j'ai les contours j'ai le cercle puisque mon cercle est le seul truc present sur mon image
Enfin merci pour le lien je vais regarder ce qu'est Canny
P.S. oui je connais les snakes parce que j'en ai codés mais je ne connais pas du tout les termes 'scientifiques'. En fait mon prof d'info m'à expliqué le principe, j'ai créé mon propre algo et Bim ca marche Donc non aucune idée
Edit : je ne trouve aucune explication concrete sur Canny. A part Wikipedia mais je comprends rien il me parle de filtres mais je ne sais pas comment utiliser la matrice donnée. Thxs for help, Skip
Pff ca à vraiment l'air compliqué ce truc
Vraiment si quelqun s'y connait un peu je veut bien qu'il m'explique le principe parce que là je patauge joyeusement
On utilise la matrice en faisant une convolution.
Il y a beaucoup de liens, rien qu'avec google.
On multiplie l'image par cette matrice (en gros) et on obtient les contours.
http://docs.gimp.org/fr/plug-in-convmatrix.html
http://xmcvs.free.fr/astroart/Chapitre4.pdf
Avec ça, si tu n'as pas compris
Merci beaucoup C'est trés simple en fait ^^Envoyé par progfou
Par contre ils se servent de l'intensité du pixel eux pas de la couleur Je vais essayer de voir comment faire merci en tout cas
Bonjour,
si tu as codé les snakes, j'aimerai bien en avoir une version... please...
Ouais bon bah je coince à propos de l'intensité comment fait on pour connaitre l'intensité d'un pixel? La seule fonction que j'ai c'est pour avoir sa couleur ...
Désolé j'ai pas le droit pour l'instant, pour cause de confidentialité. Mais je te filerait ca dès que possibleEnvoyé par ToTo13
L'intensité d'un pixel c'est la luminance (enfin, je simplifie, mais c'est l'idée).
Il existe plusieurs formules, mais la plus répandue est :
A partir de là, tu auras l'image en niveaux de gris.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Y = 0,299 R + 0,587 G + 0,114 B
Bon bah en fait je coince à nouveau
Comment tu fait concretement, pour effectuer ton changement ? (je developpe sous Allegro)
J'avoue ne pas saisr ta question...
Tu travailles en C ou C++ ?
Allegro je ne connais que de nom.
La luminance te donnera les niveaux de gris.
Tu prends chaque pixel, tu prends les valeurs R, G et B de ceux-ci, tu appliques la formule, et tu ressors un pixel avec une valeur comprise entre 0 et 255.
C'est le niveau de gris correspondant.
Bah quand je fais ca ca me donne des niveaux de bleu
(je developpe en c)
Ah j'ai peut etre une idée
Je te dis aprés dejeuner ce que ca donne
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager