Heim >Backend-Entwicklung >C++ >Wie kann die inRange-Funktion von OpenCV für die genaue Erkennung der roten Farbe in Bildern optimiert werden?
Verwendung von OpenCV zur Verbesserung der roten Farberkennung
Eine genaue Farberkennung ist bei verschiedenen Computer-Vision-Aufgaben unerlässlich. Dieser Artikel befasst sich mit der besonderen Herausforderung der Erkennung roter Objekte mithilfe der OpenCV-Bibliothek. Durch die Untersuchung des HSV-Farbraums und die Verfeinerung der Schwellenwertparameter wollen wir die Erkennung eines roten Rechtecks in einem Bild verbessern.
Problemstellung
Gegeben sei ein Bild mit a Bei einem roten Rechteck besteht das Ziel darin, das rote Objekt mithilfe der inRange-Funktion von OpenCV und des HSV-Farbraums zu isolieren und zu erkennen. Die ersten Versuche mit den bereitgestellten Parameterbereichen haben jedoch keine zufriedenstellenden Ergebnisse erbracht.
Vorgeschlagene Lösung: HSV-Farbraum
Im HSV-Raum umhüllt der rote Farbton die 180-Grad-Wert. Um Rot effektiv zu erkennen, müssen wir daher Werte von [0, 10] und [170, 180] berücksichtigen:
inRange(hsv, Scalar(0, 70, 50), Scalar(10, 255, 255), mask1); inRange(hsv, Scalar(170, 70, 50), Scalar(180, 255, 255), mask2); Mat1b mask = mask1 | mask2;
Durch die Kombination dieser beiden Masken erfassen wir den roten Farbbereich genauer. wie in den verbesserten Ergebnissen zu sehen ist.
Alternativer Ansatz: Invertiertes Bild HSV
Eine andere Perspektive für dieses Problem besteht darin, das ursprüngliche BGR-Bild vor der Konvertierung in HSV umzukehren. Im invertierten Bild wird die rote Farbe zu Cyan, was die Erkennung erleichtert:
Mat3b bgr_inv = ~bgr; cvtColor(bgr_inv, hsv_inv, COLOR_BGR2HSV); inRange(hsv_inv, Scalar(90 - 10, 70, 50), Scalar(90 + 10, 255, 255), mask);
Dieser Ansatz ermöglicht uns die Suche nach einer einzelnen Zielfarbe (Cyan) im invertierten HSV-Bild und bietet so eine gültige Alternative zum Dual-Range-Ansatz.
Fazit
Durch die Verfeinerung der Farberkennungsparameter und die Nutzung spezifischer Eigenschaften des HSV-Farbraums können wir die Erkennung von Rot deutlich verbessern Objekte mit OpenCV. Die bereitgestellten Lösungen veranschaulichen die Vielseitigkeit und Effektivität von OpenCV bei der Bewältigung anspruchsvoller Farberkennungsszenarien.
Das obige ist der detaillierte Inhalt vonWie kann die inRange-Funktion von OpenCV für die genaue Erkennung der roten Farbe in Bildern optimiert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!