OpenCV cvtColor en C++ – Cambiar el espacio de color de

En OpenCV cvtColor es una función que permite cambiar el espacio de color de una imagen. Por ejemplo, el espacio de color se refiere a que representa cada capa de una imagen, por ejemplo BGR. Entonces esta función, requiere 3 parámetros de entrada, matriz original, matriz destino y código de conversión. Un espacio de color o modelo de color es una codificación que permite representar a los colores de forma numérica. Por ejemplo, los espacios de color más comunes son:

  • RGB. Una matriz de tres dimensiones con cada matriz guardando los valores de 8 bits (0 a 255) para la intensidad. Cada matriz guarda los colores R – Rojo, G – Verde (Green) y B – Azul (Blue. En OpenCV se llama BGR, por el orden en el que se guardan cada canal.
  • HSV. Es una matriz de tres dimensiones, con cada matriz guardando, saturación, intensidad y color.
  • HLS.
  • Lab.
  • CMYK.

Fuente: https://es.wikipedia.org/wiki/Modelo_de_colores 

En este tutorial se utiliza QT Creator. Si te interesa puedes revisar el tutorial para crear un proyecto nuevo en QT. También utilizamos a la función QTimer. Quizás te pueda también interesar un proyecto para crear un reproductor de MP3 con QT. Incluso tenemos un tutorial para instalar OpenCV en Ubuntu 16.04.

OpenCV cvtColor

Sintaxis para C++:

  • void cvtColor(MatrizOriginal, MatrizDestino, CódigoColor, Canales);

Donde:

  • CódigoColor.
    • CV_BGR2Luv .
    • CV_RGB2GRAY .
    • CV_BGR2HSV .
    • CV_RGB2HSV .
    • CV_HSV2BGR .
    • CV_HSV2RGB .
    • CV_BGR2HLS .
    • CV_RGB2HLS .
    • CV_HLS2BGR .
    • CV_HLS2RGB .
    • CV_BGR2Lab .
    • CV_RGB2Lab .
    • CV_Lab2BGR .
    • CV_Lab2RGB .
    • CV_BGR2Luv .
    • CV_RGB2Luv .
    • CV_Luv2BGR .
    • CV_Luv2RGB .
    • CV_BayerBG2BGR.
    • CV_BayerGB2BGR.
    • CV_BayerRG2BGR .
    • CV_BayerGR2BGR .
    • CV_BayerBG2RGB .
    • CV_BayerGB2RGB .
    • CV_BayerRG2RGB .
    • CV_BayerGR2RGB .
  • Canales.
    • Es el numero de canales de la imagen de destino. Si no se especifica o se pone 0, se calculará automáticamente.

 

Ejemplo: Convertir una matriz de BGR a HSV en C++ con OpenCV cvtColor

Mat IMAGEN = imread(«../imagen.png»);
Mat IMG1;

cv::resize(IMAGEN,IMG1,Size(400,394));

Mat IMGb1;
cvtColor(IMG1,IMGb1,CV_BGR2HSV);

 

El resultado estará guardado en la matriz IMGb1.

Código de github de una función QTimer en OpenCV con cvtColor

Descarga el proyecto completo

https://hetpro-store.com/TUTORIALES/EjemplosProgramas/QT-OpenCV-5-cvtColor.zip

Autor: Dr. Rubén Estrada Marmolejo

 

Escríbenos tus dudas o comentarios

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Usamos Cookies en nuestro sitio WEB

Por favor confirma, si aceptas nuestras cookies de rastreo. También puedes negar el uso de cookies de rastreo y seguir navegando sin que ninguna información sea enviada a servicios de terceros.