Ich muss prüfen, ob ein kleines Schwarz-Weiß-Symbol (Vorlage) in einem großen, farbigen Dashboard-Foto angezeigt wird.
Das Symbol im Foto kann in Farbe, Maßstab, kleiner Drehung und Komprimierung/Beleuchtung von der Vorlage abweichen.
Exakte Pixelanpassung (Array-Gleichheit / Sliding_Window_View) funktioniert nur, wenn das kleine Bild ein perfekter Ausschnitt des großen ist eine, was nicht mein Fall ist.
Bilder:


Was ich habe:
- Sprache/Bibliotheken: Python 3.x + OpenCV 4.x
- Eingabe 1 (Vorlage): kleines S/W-Symbol (transparenter oder weißer Hintergrund).
- Eingabe 2 (Szene): großes RGB-Foto mit mehreren farbigen Symbolen.
- Genaue Pixelübereinstimmung → schlägt fehl, wenn Größe/Farbe/Komprimierung unterschiedlich sind.
- in einem Maßstab → funktioniert nur, wenn die Größen übereinstimmen; bricht mit Skalierung/Rotation.
Code: Select all
cv2.matchTemplate - ORB/SIFT + Homographie → schlägt manchmal aufgrund der geringen Textur in flachen Symbolen fehl.
- Kanten-/Fasenanpassung → besser, kann aber ohne zusätzliche Einschränkungen ähnliche Formen (z. B. ABS vs. Airbag) verwechseln.
Eine robuste Methode (oder Kombination) zur Beantwortung der Frage „Existiert dieses Symbol in der Szene?“ und idealerweise zur Rückgabe seiner Position, trotz Farbänderungen und mäßiger Skalierung/Rotation.
Einschränkungen/Anmerkungen:
- Falsch Positive Elemente wie andere rote Symbole („SOS“, „ABS“) sollten vermieden werden.
- Ich kann nach Farbe vorfiltern (z. B. auf rote Bereiche konzentrieren), wenn das hilft.
Mobile version