Verbesserte rote Farberkennung in OpenCV mithilfe des HSV-Farbraums
Dieser Artikel zielt darauf ab, die Genauigkeit der roten Farberkennung in Bildern mithilfe des HSV von OpenCV zu verbessern Farbraum.
Problem:
Das Erkennen eines roten Rechtecks in einem Bild mithilfe von cv::inRange und HSV-Farbraum führt derzeit zu unbefriedigenden Ergebnissen. Das gewünschte Ergebnis besteht darin, das rote Rechteck effektiv zu isolieren.
Lösung:
Bei HSV erstreckt sich die rote Farbe über einen Bereich, der um den Wert 180 herum liegt. Zu berücksichtigen Daher sollte der HSV-Bereich Werte sowohl in [0,10] als auch in [170, 180] enthalten.
Codeaktualisierung:
Der folgende Codeausschnitt demonstriert die Aktualisierung Ansatz:
# Include OpenCV library import cv2 # Define HSV range for red color H_MIN1 = 0 H_MAX1 = 10 H_MIN2 = 170 H_MAX2 = 180 S_MIN = 70 S_MAX = 255 V_MIN = 50 V_MAX = 255 # Read the input image image = cv2.imread('image.png') # Convert to HSV color space hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV) # Create masks for the two ranges of red hue mask1 = cv2.inRange(hsv, (H_MIN1, S_MIN, V_MIN), (H_MAX1, S_MAX, V_MAX)) mask2 = cv2.inRange(hsv, (H_MIN2, S_MIN, V_MIN), (H_MAX2, S_MAX, V_MAX)) # Combine the masks mask = cv2.bitwise_or(mask1, mask2) # Display the resulting mask cv2.imshow('Mask', mask) cv2.waitKey(0)
Alternativer Ansatz: Cyan-Erkennung
Eine weitere effektive Methode besteht darin, das BGR-Bild zu invertieren, in HSV zu konvertieren und die Cyan-Farbe zu isolieren (komplementär). zu rot). Dadurch entfällt die Notwendigkeit, mehrere Farbtonbereiche zu überprüfen.
Code für die Cyan-Erkennung:
# Invert the BGR image inverted = 255 - image # Convert to HSV color space hsv_inverted = cv2.cvtColor(inverted, cv2.COLOR_BGR2HSV) # Isolate cyan color cyan_mask = cv2.inRange(hsv_inverted, (90-10, S_MIN, V_MIN), (90+10, S_MAX, V_MAX)) # Display the cyan mask cv2.imshow('Cyan Mask', cyan_mask) cv2.waitKey(0)
Das obige ist der detaillierte Inhalt vonWie können wir die rote Farberkennung in OpenCV mithilfe des HSV-Farbraums verbessern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!