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.
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