Détection d'icone dans une image

Fermé
OneAgain - 14 déc. 2012 à 10:03
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 14 déc. 2012 à 22:19
Bonjour,


je suis à la recherche d'une API qui sache détecter la présence d'une icône dans une image. Je m'explique, j'ai besoin de savoir si une icône est présente à l'écran à l'aide de java. Soit en passant par une capture d'écran avec la classe Robot, soit en la cherchant directement sur l'écran.

Je sais qu'il existe des outils très puissants destinés à cela par le biais d'un navigateur web, mais j'en cherche un qui pourrait être utilisé par java.


Je pense que ce besoin a déjà été exprimé, mais j'avoue avoir du mal à trouver des exemples.


Merci de votre aide !
A voir également:

2 réponses

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
14 déc. 2012 à 13:33
De quelle genre d'icône tu parles ? Une icône que tu aurais préalablement enregistrée et qui devrait être trouvée exactement telle quelle dans l'image. Ou alors une recherche approximative d'une icône enregistrée même si elle n'est pas exacte ? Ou bien encore reconnaître que c'est une icone sans même avoir eu à l'enregistrer ?

Je pense que le premier cas est assez simple à mettre en oeuvre, mais il faudrait avoir un peu plus de détail sur ce que tu veux vraiment...
0
Merci de ton intérêt.

Et bien en fait je souhaite avoir un motif particulier, c'est à dire avoir un morceau d'une image et la comparer avec des screenshot faits par le robot. Comme reconnaitre des morceaux d'une photo disons, et vérifier si ce morceau fait partie de l'image.
J'ai regardé cet après midi, je pense pouvoir faire cela en comparant les pixels des deux images. C'est simplement que je me dis que ce travail a déjà été effectué par quelqu'un, obligatoirement mais je ne trouve pas d'API pour autant.
Je pense devoir faire cela moi même !
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
14 déc. 2012 à 22:19
En effet ça a surement déjà été fait, mais faut tomber dessus... Et c'est tellement simple que tu mettras moins de temps à le faire toi même que de parcourir internet pour le chercher.

Idée d'algorithme :
1) On ne considère que la "ligne haute" de l'icône (la première série de pixel) et tu parcoures l'image pour trouver les endroits où cette ligne se trouve (c'est quasiment le même algorithme que les indexOf pour la classe String)
2) Pour chaque endroit repéré (s'il y en a) tu regardes dans l'image si les lignes du dessous correspondent aussi aux lignes associées de l'icône.

Apriori la seule chose dont tu as besoin c'est de BufferedImage, en particulier la méthode getRGB. Après ce n'est que de la manipulation de tableaux...
0