OpenCV cvtColor
Este artículo tiene como objetivo aprender qué hace el método cvtColor()
y cómo usar este método para convertir la imagen rgb
en una imagen hsv
en OpenCV. También discutimos dónde es útil la imagen hsv
y por qué necesitamos usarla.
Use el método cvtColor()
para crear una imagen HSV en OpenCV
Aquí, hemos agregado una imagen que muestra la diferencia entre la imagen RGB
y la imagen HSV
. Siempre que considere cualquier imagen en el color RGB
, cada píxel tiene tres valores que representan los colores rojo, verde y azul.
De manera similar, en la imagen del modelo de color HSV
, cada píxel se representa con los tres valores tono, saturación y valor. El tono representa el ángulo, la saturación representa la saturación del color y el valor representa la intensidad del color.
Entonces, de esta manera, funciona el modelo de color HSV
. Cuando convertimos cualquier imagen RGB
en la imagen HSV
, cada valor de píxel se convierte al formato de valor y saturación de tono; llamamos a este modelo de color HSV
.
Veamos cómo convertir este modelo de color RGB
en la imagen del modelo de color HSV
.
En primer lugar, estamos importando los paquetes opencv
y numpy
, y en la siguiente línea, estamos tratando de acceder a nuestra cámara usando VideoCapture()
y pasando cero, por lo que accederá a la cámara principal en este sistema. .
Los almacenamos en el objeto V
, cualquiera que sea el video que obtengamos.
import numpy as np
import cv2
V = cv2.VideoCapture(0)
Una vez que hayamos capturado el video de la cámara, recorreremos cada cuadro dentro de ese video. Ahora necesitamos leer cada cuadro de la captura de video, y este cuadro no es más que la única imagen de nuestro video que es la forma de la matriz numpy
.
RET, F = V.read()
cv2.imshow("BGR Frame", F)
Este es el marco original, y convertiremos el marco en HSV
usando el método cvtColor()
. Este método trae los diferentes modelos de color a los usuarios, y entre ellos, el método más común es COLOR_BGR2HSV
.
Tenemos que pasar los dos parámetros en el cvtColor()
); uno es nuestra imagen original y el segundo es qué tipo de conversión queremos hacer en esta imagen o en un marco. Pasamos el método COLOR_BGR2HSV
como parámetro, lo que significa que le estamos diciendo a cvtColor()
que convierta el color de esta imagen de BGR
a HSV
.
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()
Podemos ver que nuestro programa se está ejecutando, y en el lado izquierdo estamos poniendo el contenido original al que estamos accediendo desde la cámara en formato BGR
.
En el lado derecho, podemos ver la imagen del valor de saturación del tono, y en esta parte, los diferentes tonos de color están incluidos en el rango de color específico.
Hablemos de por qué necesitamos convertir esta imagen al formato HSV
y el beneficio de convertir la imagen BGR
al formato HSV
.
Es útil en cualquier proyecto de visión por computadora o aprendizaje automático porque cada área se representa con otros tonos de color. Si solo está interesado en el objeto que está marcado con un color específico, en ese caso, puede ignorar el resto del área de color y extraer la parte específica del área de color.
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