Ich werde die GUI der Calculator-App in Windows als Beispiel erläutern. Angesichts der Offenheit und Fokussierung dieser Rechneranwendung muss ich einen Weg finden, alle Schaltflächen zu erkennen. Ich kann nur nicht aufdringliche Methoden verwenden, sodass Dinge wie die Schaltflächen-ID nicht in Frage kommen. Dies führt mich zur Bilderkennung. Oder besser gesagt, Bilderkennung, weil ich kein bestimmtes Bild möchte, sondern eine Reihe von Bildern, die einem bestimmten Muster folgen. Ich weiß, wie ich mit einem bestimmten Schaltflächenbild und einer bestimmten Bilderkennung auf / Rechtsklick / Doppelklick / usw. klicken kann [1]. Ich weiß nicht, wie ich es umgekehrt machen kann: Scannen Sie die GUI und finden Sie die Bereiche, die den Anforderungen einer Schaltfläche entsprechen (Rechteck, Text / Symbol / Grafik usw.). Ein größeres Problem wäre, Elemente zu erkennen, die nicht die Rechteckform haben (z. B. Symbole auf einem Windows-Desktop).
Das nächste, was ich brauche, ist das Erkennen von Gesichtern in einem Bild. [2] Aber ich weiß nicht, wie ich das in meinem Fall anwenden soll. Für die Erkennung des menschlichen Gesichts habe ich gesehen, dass Hunderte von Bildern des Gesichts in der Haar-Kaskadengeneration verwendet werden müssen (ich weiß nicht, wie ich dies mit nur 10-15 Schnappschüssen machen würde). Wenn eine andere Art von Objekt wie ein Apfel erkannt werden muss, müssen Sie erneut eine Haar-Kaskade für dieses Objekt mit vielen Bildern generieren.
Hat jemand von Ihnen jemals versucht, Schaltflächen, Elemente oder was auch immer in einer GUI nur mit Mustererkennung zu erkennen? Ich brauche nur etwas, um mir zu sagen, dass dies ein Symbol / eine Schaltfläche ist, damit ich diese Region in einem Schnappschuss erfassen kann.
[1] Ich benutze SikuliX mit Python, um Aktionen für bestimmte Muster auszuführen.
[2] Ich habe gesehen, dass dies mit OpenCV- und Haar-Kaskaden (im XML-Format) problemlos möglich ist. Das Erstellen der Haar-Kakaden erfordert ein wenig Geduld und Können.
quelle
Nachdem ich meine Frage umformuliert hatte, bekam ich die Antwort, die ich suchte. Das ist ein weiteres Beispiel, bei dem Sie wissen müssen, wonach Sie fragen müssen, um das zu erhalten, was Sie benötigen. Hier ist die Seite: Wie kann ich Elemente der GUI mit opencv erkennen? Danke für die Hilfe!
quelle