OpenCV cvtColor

Salman Mehmood 15 febrero 2024
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.

Imagen RGB y HSV

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.

Use el método cvtColor para crear una imagen HSV en OpenCV

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.

Salman Mehmood avatar Salman Mehmood avatar

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

Artículo relacionado - Python OpenCV