Heim > Backend-Entwicklung > C++ > Wie kann die Genauigkeit der Erkennung roter Objekte im HSV-Farbraum mit OpenCV verbessert werden?

Wie kann die Genauigkeit der Erkennung roter Objekte im HSV-Farbraum mit OpenCV verbessert werden?

Linda Hamilton
Freigeben: 2024-11-15 04:43:02
Original
1017 Leute haben es durchsucht

How to Improve Red Object Detection Accuracy in HSV Color Space with OpenCV?

Optimierte Objekterkennung im HSV-Farbraum mit OpenCV

Problem:

Angenommen, ein Bild enthält ein rotes Rechteck, die Aufgabe besteht darin, die Erkennungsgenauigkeit der roten Farbe mithilfe der cv::inRange-Methode von OpenCV innerhalb des HSV-Farbraums zu verbessern.

Ursprünglicher Ansatz:

int H_MIN = 0;
int H_MAX = 10;
int S_MIN = 70; 
int S_MAX = 255;
int V_MIN = 50;
int V_MAX = 255;

cv::inRange( imageHSV, cv::Scalar( H_MIN, S_MIN, V_MIN ), cv::Scalar( H_MAX, S_MAX, V_MAX ), imgThreshold0 );
Nach dem Login kopieren

Dieser Ansatz bietet unbefriedigende Ergebnisse.

Verbesserte Lösung:

Der ursprüngliche Ansatz berücksichtigt nicht die „Umhüllung“ der roten Farbe um 180 Grad im HSV-Raum. Um dies zu beheben, muss der H-Bereich sowohl [0,10] als auch [170, 180] umfassen.

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;
Nach dem Login kopieren

Dieser aktualisierte Ansatz führt zu verbesserten Erkennungsergebnissen.

Alternative Vorgehensweise:

Eine weitere effiziente Methode ist:

  1. Das BGR-Bild umkehren.
  2. In HSV konvertieren.
  3. Nach Cyan suchen Farbe.
Mat3b bgr_inv = ~bgr;
inRange(hsv_inv, Scalar(90 - 10, 70, 50), Scalar(90 + 10, 255, 255), mask); // Cyan is 90
Nach dem Login kopieren

Dieser alternative Ansatz ermöglicht eine Einzelbereichsprüfung und liefert zufriedenstellende Ergebnisse.

Das obige ist der detaillierte Inhalt vonWie kann die Genauigkeit der Erkennung roter Objekte im HSV-Farbraum mit OpenCV verbessert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage