Spiegherò prendendo come esempio la GUI dell'app Calcolatrice in Windows. Dato che questa applicazione Calcolatrice è aperta e focalizzata, devo trovare un modo per rilevare tutti i pulsanti. Posso usare solo metodi non intrusivi, quindi cose come l'id pulsante sono fuori questione. Questo mi porta al riconoscimento delle immagini. O meglio dire il rilevamento delle immagini, perché non voglio un'immagine specifica, ma un insieme di immagini che seguono un certo schema. So come posso fare clic / clic con il tasto destro / dbl-click / etc usando una determinata immagine del pulsante e il riconoscimento dell'immagine [1]. Non so come fare al contrario: scansiona la GUI e trova quelle aree che soddisfano i requisiti per essere un pulsante (rettangolo, testo / icona / grafico con etichetta ecc.). Un'attrezzatura più grande sarebbe quella di rilevare elementi che non hanno la forma rettangolare (ad es. Icone su un desktop di Windows)
La cosa più vicina a ciò di cui ho bisogno è rilevare i volti in un'immagine. [2] Ma non so come applicarlo nel mio caso. Per il rilevamento del volto umano, ho visto che centinaia di immagini del viso devono essere utilizzate nella generazione della cascata Haar (non so come farei con solo 10-15 istantanee dei pulsanti). Se un altro tipo di oggetto deve essere rilevato come una mela, è necessario generare nuovamente la cascata Haar per quell'oggetto utilizzando molte immagini.
Qualcuno di voi ha mai provato a rilevare pulsanti, elementi o altro in una GUI usando solo il rilevamento di pattern? Ho solo bisogno di qualcosa che mi dica "questa è un'icona / pulsante" in modo da poter catturare quella regione in un'istantanea.
[1] Uso SikuliX con Python per eseguire azioni su determinati schemi.
[2] Ho visto che questo è fatto facilmente usando OpenCV e Haar cascades (in formato XML). La creazione delle cale Haar richiede un po 'di pazienza e abilità.