[Java/Algo] Reconnaitre un disque dans un image

Reconnaitre un disque dans un image [Java/Algo] - Java - Programmation

Marsh Posté le 30-05-2003 à 16:32:59    

Voilà, je fais quelques essais en prévision d'un prochain stage ...
Comment reconnaitre des disque d'une certaine taille et de couleur blanche, sur un fond noir/bruité ?  
Je pense à certain algos, mais il doit en exister des tout près et performant.
 
Pour l'instant, j'arrive à ouvrire une image JPG, la transformer en BufferedImage pour faire des getRGB etc ...
 
Sinon, en java, peut on ouvrire des video, avi ou autre, et faire le même genre de traitement, image par images ?


Message édité par Ricco le 30-05-2003 à 16:33:32
Reply

Marsh Posté le 30-05-2003 à 16:32:59   

Reply

Marsh Posté le 30-05-2003 à 17:17:45    

ricco a écrit :

Voilà, je fais quelques essais en prévision d'un prochain stage ...
Comment reconnaitre des disque d'une certaine taille et de couleur blanche, sur un fond noir/bruité ?  
Je pense à certain algos, mais il doit en exister des tout près et performant.


Transformation de hough.

Reply

Marsh Posté le 30-05-2003 à 19:44:11    

nraynaud a écrit :


Transformation de hough.

hough, c'est pas plus pour des choses linéaires ?


---------------
http://runnerstats.net
Reply

Marsh Posté le 30-05-2003 à 19:58:41    

Ouai bon, je me suis peut-être enflammé ...  
En fait je chercherais en gros comment faire ... même finalement une methode bourin au début pour voir quitte à l'améliorer ensuite.
A la rigueur, trouver un groupe de pixel pour gros qu'une certaine valeur, ok avec des fonction recursives qui partent dans plusieurs directions en chageant la couleur des pixels sur leur passage ... mais une fois ce disque trouvé, comment trouver le centre à peu près ? Est-ce une bonne solution de stoquer la valeur moyenne de son point le plus haut et de son point le plus bas ?
Je code quelques lignes pour voir mais je me suis pas vraiment lancé encore ...


Message édité par Ricco le 30-05-2003 à 20:04:34
Reply

Marsh Posté le 30-05-2003 à 20:10:22    

Perso, je scanera l'image pixel par pixel, ligne pas ligne, de haut en bas, à la recherche de changement de couleurs.
 
A partir de là, tu auras une matrice de booléens.
 
Première passe : tu vire les points isolés.
Seconde passe, tu récupère les extrémistés de chaque changement de couleur, cette fois horizontalement, puis verticalement.
A partir de là, tu auras une série de courbes représentées dans ta matrice. Reste plus qu'à partir de leurs coordonées, à retrouver si ça correspond vaguement à un cercle, et ce pour chaque zone repérée (au cas où tu doives retrouver plusieurs disques dans une même image).
 
Je ne pense pas que ce soit extrêment lent.
La première passe étant à priori la plus lente, la recherche d'une expression de cercle passant par certains points choisis étant facile à faire.
 
Sinon, pour retrouver le centre du cercle, fait comme tu dis, mais aussi avec le point le plus à droite et le plus à gauche : ça permettra d'être beaucoup plus précis

Reply

Marsh Posté le 30-05-2003 à 20:56:25    

noldor a écrit :

hough, c'est pas plus pour des choses linéaires ?


http://www.google.com/search?q=hou [...] ISO-8859-1
Oh bah dit donc, t'as de la chance, c'est le 2ème lien !
 
pour répondre : il a fait des lignes droite, il a trouvé ça facile alors il a fait les ronds
 
D'ailleur je me demande si on devrait pas en faire une pour les têtes de Mikey.

Reply

Marsh Posté le 02-07-2003 à 17:43:03    

Salut,
 
Il existe l'algorithme de ligne de partage des eaux (ou inondation ou hill climbing) qui permet de délimiter des zones dans une image. L'algo est facile à implémenter par contre de la a détecter des cercles ... il reste encore bcp de boulot !!

Reply

Marsh Posté le 03-07-2003 à 11:24:27    

Citeseer est ton ami...
 
http://citeseer.nj.nec.com/cs
 
petite recherche sur "circle and detection and image" et tout ce qui te passe par la tete. Fait une recherche sur les transformations de hough, trouve l'article cle, puis regarde quels sont les articles qui font reference a celui-ci, quels sont les articles les plus cites, trouve les conferences qui traitent du sujet, etc... tu auras en l'espace d'une petite heure une bonne idee de ce qui a ete fait.
 
En deux minutes tu te rendras compte qu'il existe l'IAPR  
 
http://www.iapr.org/
 
Et qu'une floppee de conferences sur la detection de patterns existent... Ensuite tu prends les articles et tu cherches les algos
 
Note ?
 
:ange:

Reply

Marsh Posté le 04-07-2003 à 12:53:41    

Merci pour votre aide.
La note, je l'aurais qu'en septembre :) encore un moi de stage.
Pour l'instant, j'isole la petite bete en soustrayant l'image à la moyenne des autres images. Un léger seuillage et il me reste des points plus ou moins blancs, sur un fond noir. Je scanne ensuite l'image à la recherche d'un certain nombre de pixels blancs côte à côte, et je fais le centre de masse pour trouver le milieu. je stocke tout ça.
Actuellement, je cherche à voir, si c possible, comment le mieux labelliser les bêtes, les suivre entre les images. On m'a parler du filtre de Kalman ... mais c compliqué, g un peu la flême de me plonger la dedans ... G fait des algo à l'arrache, en reunissant les bêtes les plus proche mais ça fait pas très serieux ... Ca marche plutôt bien sauf qd 2 bêtes se rapprochent.
 
En + j'attaque l'analyse de 2 images en même temps pour sortir les coordonnés 3d, sans un algo fiable je vais pas aller loin ...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed