OpenCV cvtColor
Dieser Artikel soll lernen, was die Methode cvtColor()
tut und wie man diese Methode verwendet, um das rgb
-Bild in ein hsv
-Bild in OpenCV zu konvertieren. Wir besprechen auch, wo das Bild hsv
nützlich ist und warum wir es verwenden müssen.
Verwenden Sie die Methode cvtColor()
, um ein HSV-Bild in OpenCV zu erstellen
Hier haben wir ein Bild hinzugefügt, das den Unterschied zwischen dem RGB
- und dem HSV
-Bild zeigt. Wenn Sie ein Bild in der Farbe RGB
betrachten, hat jedes Pixel drei Werte, die die Farben Rot, Grün und Blau darstellen.
Ebenso wird im Farbmodellbild HSV
jeder Pixel mit den drei Werten Farbton, Sättigung und Wert dargestellt. Der Farbton stellt den Winkel dar, die Sättigung stellt die Sättigung der Farbe dar und der Wert stellt die Intensität der Farbe dar.
So funktioniert also das Farbmodell HSV
. Wenn wir ein beliebiges RGB
-Bild in das HSV
-Bild konvertieren, wird jeder Pixelwert in das Farbtonsättigungs- und Werteformat konvertiert; wir nennen dieses Farbmodell HSV
.
Sehen wir uns an, wie dieses RGB
-Farbmodell in das HSV
-Farbmodellbild umgewandelt wird.
Zuerst importieren wir die Pakete opencv
und numpy
, und in der nächsten Zeile versuchen wir, mit VideoCapture()
auf unsere Kamera zuzugreifen und Null zu übergeben, damit sie auf die primäre Kamera auf diesem System zugreift .
Wir speichern sie im V
-Objekt, unabhängig davon, welche Video-Feeds wir erhalten.
import numpy as np
import cv2
V = cv2.VideoCapture(0)
Sobald wir das Video von der Kamera aufgenommen haben, durchlaufen wir jeden Frame innerhalb dieses Videos. Jetzt müssen wir jeden Frame aus der Videoaufnahme lesen, und dieser Frame ist nichts anderes als das eine Bild aus unserem Video, das die Form des numpy
-Arrays hat.
RET, F = V.read()
cv2.imshow("BGR Frame", F)
Dies ist das Originalbild, und wir werden das Bild mit der Methode cvtColor()
in HSV
umwandeln. Diese Methode bringt die verschiedenen Farbmodelle zu den Benutzern, und unter ihnen ist die häufigste Methode COLOR_BGR2HSV
.
Wir müssen die beiden Parameter in cvtColor()
übergeben; Eines ist unser Originalbild, und das zweite ist, welche Art von Konvertierung wir an diesem Bild oder einem Frame vornehmen möchten. Wir haben die Methode COLOR_BGR2HSV
als Parameter übergeben, was bedeutet, dass wir cvtColor()
mitteilen, diese Bildfarbe von BGR
in HSV
umzuwandeln.
import numpy as np
import cv2
V = cv2.VideoCapture(0)
while True:
RET, F = V.read()
cv2.imshow("BGR Frame", F)
HSV = cv2.cvtColor(F, cv2.COLOR_BGR2HSV)
cv2.imshow("HSV Frame", HSV)
if cv2.waitKey(1) == ord("q"):
break
V.release()
cv2.destroyAllWindows()
Wir können sehen, dass unser Programm läuft, und auf der linken Seite stellen wir den Originalinhalt, auf den wir von der Kamera zugreifen, im BGR
-Format ab.
Auf der rechten Seite sehen wir das Farbton-Sättigungswert-Bild, und in diesem Teil sind die verschiedenen Farbtöne in dem spezifischen Farbbereich enthalten.
Lassen Sie uns darüber sprechen, warum wir dieses Bild in das HSV
-Format konvertieren müssen und welche Vorteile es hat, das BGR
-Bild in das HSV
-Format zu konvertieren.
Es ist in jedem Computervisions- oder maschinellen Lernprojekt nützlich, da jeder Bereich mit anderen Farbschattierungen dargestellt wird. Wenn Sie nur an dem Objekt interessiert sind, das mit einer bestimmten Farbe markiert ist, können Sie in diesem Fall den restlichen Farbbereich ignorieren und den bestimmten Teil des Farbbereichs extrahieren.
Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.
LinkedIn