OpenCV convierte un solo canal a tres canales

El proyecto tiene un requisito: después de transferir la imagen a la biblioteca de algoritmos de imágenes y procesarla, la imagen resultante debe devolverse para su reprocesamiento.

La situación actual es que la imagen capturada por la cámara es una imagen en escala de grises.

Envíe el puntero de la imagen al algoritmo para su procesamiento. Una vez procesado el algoritmo, los resultados de la detección (p. ej., ok, ng) se escribirán en una imagen de tres canales. Sólo de esta manera se podrá mostrar el texto en color.

Entonces ahora necesitamos devolver el puntero de esta imagen de tres canales. Lo que se devuelve son tres punteros de tres canales.

Procesamiento: opencv puede usar dividir para separar canales o fusionar para fusionar canales. No es posible usar cvtcolor porque los valores de los otros dos canales no se pueden fusionar cuando los valores son inciertos. La siguiente es la operación real:

vector<Mat>src;
src.emplace_back(B);
src.emplace_back(G);
src.emplace_back(srcR);
merge(src,dst);
imshow("a",dst);

Eso es todo. Tenga en cuenta que el orden de los tres canales insertados en el vector es BGR; de lo contrario, provocará confusión de color.

Supongo que te gusta

Origin blog.csdn.net/u012422524/article/details/128960011
Recomendado
Clasificación