Um ein bestimmtes gefärbtes Objekt aus einem Bild zu extrahieren, können Sie die Funktion cv.inRange()
verwenden. Für dieses Beispiel extrahieren wir ein blaues Objekt aus dem Bild.
Definieren des Farbbereichs
Definieren Sie zunächst die unteren und oberen Grenzen der blauen Farbe im HSV-Farbraum:
## Blau wird im HSV bei einer Farbtonlage von rund 240 Grad aus 360 Grad dargestellt.
## Der Farbtonbereich in OpenCV-HSV ist 0-180, um den Wert in 8 Bit zu speichern.
## Somit wird blau im OpenCV-HSV als Wert von H von ungefähr 240 / 2 = 120 dargestellt.
## Um blau korrekt zu erkennen, können die folgenden Werte gewählt werden:
blue_lower = np.array([100, 150, 0], np.uint8)
blue_upper = np.array([140, 255, 255], np.uint8)
Bildschwellenwertung
Wenden Sie einen Bildschwellenwert auf das HSV-Bild an, um nur die blauen Farben zu erhalten:
## Maske der blauen Farbe
blue_mask = cv.inRange(hsv_image, blue_lower, blue_upper)
Anwenden der Maske
Wenden Sie die Maske auf das ursprüngliche Bild an, um das blaue Objekt zu extrahieren:
## Verwende die Maske, um das blaue Objekt zu extrahieren
blue_object = cv.bitwise_and(image, image, mask=blue_mask)
Zeigen Sie das ursprüngliche Bild und das extrahierte blaue Objekt an:
## Speichere das Bild in die angegebene Datei
cv.imwrite('blue_object.jpg', blue_object)