guten tag,
gibt es eine Möglichkeit in autoit formen wie z.B ein Viereck oder ein Dreieck oder sowas zu erkennen?
guten tag,
gibt es eine Möglichkeit in autoit formen wie z.B ein Viereck oder ein Dreieck oder sowas zu erkennen?
#include <AutoItConstants.au3>
Local $searchColor = 0x5B75E8; Blaue Farbe (RGB-Format)
Local $tolerance = 10 ; Toleranzwert für Farbunterschiede
Local $pos = PixelSearch(0, 0, @DesktopWidth, @DesktopHeight, $searchColor, $tolerance)
If Not @error Then
MsgBox(0, "Form erkannt", "Ein blaues Element wurde gefunden an Position: X=" & $pos[0] & ", Y=" & $pos[1])
Else
MsgBox(0, "Form nicht gefunden", "Es wurde kein blaues Element gefunden ")
EndIf
Alles anzeigen
In meinem Beispiel kannst du meine profilanzeige finden wenn es auf dem Bildschirm geöffnet hast.
Aber lediglich durch die Farbe würd das ausgelöst, wie das mit formen funktioniert weiß ich nicht und ist bestimmt komplexer.
Vielleicht hilft dir dieser link weiter : OpenCV v4 UDF - AutoIt-Beispielskripte - AutoIt-Foren (autoitscript.com)
Bitte formuliere die Frage besser.
"gibt es eine Möglichkeit in autoit formen wie z.B ein Viereck oder ein Dreieck oder sowas zu erkennen"
Beispiel 1: Speichere die Koordinaten für ein Axis-Aligned-Rect und ein Dreieck in einem Array. Vierecke brauchen 4 Werte (x, y, w, h im R²), Dreiecke brauchen 6 Werte (3 Punkte mit je x und y)
-> Die Unterscheidung ist hier trivial via UBound.
Beispiel 2: Das Dreieck/Viereck ist in einer 2D Computergrafik (pixel), Alle Vierecke sind Axis-Aligned (also durch x, y, w, h darstellbar), alle Kanten sind scharf, alle Flächen sind einfarbig.
-> Ebenfalls trivial. Das Bild besteht nur aus einfarbigen Flächen verschiedener Form, ein "Ist das ein Viereck" check ist hier trivial. Ein Dreieck-Check wird etwas anstrengender aber auch möglich.
Beispiel 3: Das Dreieck/Viereck ist in einer 2D Computergrafik (pixel), alle flächen sind einfarbig. Freie Rotation ist erlaubt.
-> Hier hört der (triviale) Spaß bereits auf. Ein (halbwegs) einfacher weg (wenn alles einfarbig ist) besteht darin die Flächen via floodfill algorithmus aus dem Gesamtbild zu trennen. Dann kann man sie einzeln betrachten und außenkanten finden wo 50% der Pixelzentren links und 50% rechts von einer Linie liegen. Das macht man ein Mal für 3 und ein Mal für 4 Kanten, schaut wo der Fit besser passt -> Dreieck/Viereck unterschieden.
Beispiel 4: Das Dreieck/Viereck ist in einer 2D Computergrafik (pixel), Flächen können (milde) texturiert sein (eine Textur die Dreiecke/Vierecke beinhaltet wäre natürlich fies), freie Rotation ist erglaubt.
-> Hier hört das auf was ich zuverlässig ohne nachzuschlagen programmieren kann.
Beispiel 5: Das Dreieck/Viereck ist in einer Fotografie (pixel). Es ist perspektivisch verzerrt, hat eine Textur, die Kanten sind unscharf.
-> Hier hört das auf was ich zuverlässig mit viel Arbeit und Nachschlagen programmieren kann. Eine halbwegs funktionierende Version davon musste ich vor Ewigkeiten mal für eine Computer-Vision VL basteln. Da habe ich aber C++ draufgeworfen und zusammen mit OpenCV alles mit Rechenpower besiegt was nicht bei 3 auf dem Baum war. Das wird in AutoIt nicht funktionieren.
Daher bitte: Formuliere die Frage besser. Keiner kann wissen was du willst.
M
hmm mir fällt grad ein, du könntest eine ki basteln die das erkennt, wie du die aber trainierst hab ich auch keine Ahnung
Ich finde den Link leider nicht, aber ich habe aber mal ein Beispiel mit Autoit gesehen das hat einfach die Trainingsdaten vom tranierten phyton modell benutz.
edit ich dachte es wäre mit phyton Anschein doch keine ai xD, was hab ich da damals gelesen? ... egal
Aber es hat gut funktioniert, ich glaub Dreiecke und Vierecke wurden aber nicht separat erkannt, dafür alles andere Fahrzeuge, Tiere, Menschen, Waffen etc.
Wenn ich den Link finde poste ich ihn das ist sehr interessant^^.
hier der link :
Real-Time Object Detection using YOLOv3 wrapper - AutoIt Example Scripts - AutoIt Forums (autoitscript.com)
weitere Infos dazu : YOLO: Real-Time Object Detection (pjreddie.com)