Je vais vous expliquer en prenant comme exemple l'interface graphique de l'application Calculatrice dans Windows. Étant donné que cette application Calculatrice est ouverte et ciblée, je dois trouver un moyen de détecter tous les boutons.Je ne peux utiliser que des méthodes non intrusives, donc des choses comme l'ID du bouton sont hors de question. Cela m'amène à la reconnaissance d'image. Ou mieux dire la détection d'image, car je ne veux pas d'une image spécifique, mais d'un ensemble d'images qui suivent un certain modèle. Je sais comment je peux cliquer / cliquer avec le bouton droit / dbl-cliquer / etc en utilisant une image de bouton et une reconnaissance d'image données [1]. Je ne sais pas comment je peux faire l'inverse: scanner l'interface graphique et trouver les zones qui répondent aux exigences d'être un bouton (rectangle, texte / icône / graphique étiqueté, etc.). Un plus gros tacle serait de détecter les éléments qui n'ont pas la forme d'un rectangle (par exemple des icônes sur un bureau Windows)
La chose la plus proche de ce dont j'ai besoin est de détecter les visages dans une image. [2] Mais je ne sais pas comment appliquer cela dans mon cas. Pour la détection de visage humain, j'ai vu que des centaines d'images du visage devaient être utilisées dans la génération de la cascade Haar (je ne sais pas comment je ferais cela avec seulement 10 à 15 instantanés de boutons). Si un autre type d'objet doit être détecté comme une pomme, vous devez générer à nouveau la cascade de Haar pour cet objet en utilisant beaucoup d'images.
Avez-vous déjà essayé de détecter des boutons, des éléments ou quoi que ce soit dans une interface graphique en utilisant uniquement la détection de modèle? J'ai juste besoin de quelque chose pour me dire "c'est une icône / un bouton" afin que je puisse saisir cette région dans un instantané.
[1] J'utilise SikuliX avec Python pour effectuer des actions sur des modèles donnés.
[2] J'ai vu que cela se fait facilement en utilisant les cascades OpenCV et Haar (au format XML). La création des cacades Haar nécessite un peu de patience et de compétences.
la source
Après avoir reformulé ma question, j'ai obtenu la réponse que je cherchais. C'est un autre exemple que vous devez savoir quoi demander pour recevoir ce dont vous avez besoin. Voici la page: Comment puis-je détecter des éléments de l'interface graphique en utilisant opencv? Merci pour l'aide!
la source