Gran parte del estudio del canal de mezcla OpenCV imagen

En el estudio "OpenCV3 Programación Introducción" la sección 5.3 de este libro separado los canales de color, multi-canal de la imagen de mezcla, descubierto unos cuantos puntos vale la pena destacar, porque no hay explicación o énfasis, el más mínimo error podría seguir siendo libro equivocado, a continuación, deja que el grito de aire! Así que miro a este registro, no hay ninguna mención respecto a otros libros o sabía charla, tengo NBCS ji, ji, mirada como!

Efecto separa canales de color

El libro sólo para el código de la llave, y no hay representaciones, por lo que no prueba las personas que pueden no ser capaces de entender la separación del papel, así que tomé un total de 13 minutos de código, de la siguiente manera:

#include<opencv2/core.hpp>
#include<opencv2/highgui.hpp>
#include<opencv2/imgproc.hpp>
#include<iostream>
using namespace cv;
using namespace std;
void main()
{
	vector<Mat> channels; //必须有命名空间std
	Mat imageBlueChannel,imageGreenChannel,imageRedChannel;
	Mat srcImage = imread("RGB测试.png");
	imshow("【原图】", srcImage);
	//把一个3通道图像转换成3个单通道图像
	split(srcImage, channels);
	imageBlueChannel = channels.at(0);
	imageGreenChannel = channels.at(1);
	imageRedChannel = channels.at(2);

	imshow("【蓝色】", imageBlueChannel);
	imshow("【绿色】", imageGreenChannel);
	imshow("【红色】", imageRedChannel);
	waitKey(0);
}

Si usted y yo acaba de comenzar, al igual que, sólo para encontrar una imagen RGB a prueba, puede que no sea capaz de leer los resultados. Así que estoy tratando de llegar a conocer el efecto, en lo personal dibujé un mapa, rojo, verde y azul separados, por lo que el efecto es más evidente. Los resultados son como sigue:
Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción
ver referencias que la separación de colores, un solo canal se convierte primero la imagen en escala de grises, a continuación, el color correspondiente se convierte en luz, y la oscurecer restante, se separa en un solo efecto canal. En cuanto a qué principios específicos, también no sé charla, después de todo, mi OpenCV también sólo el 1,3.

imagen multicanal mixta

La nota principal del programa de ejemplo 5.3.3, que es la separación de imágenes multi-canal, y luego los tres colores se mezclan la imagen, el resultado es que su dibujo del logotipo del mezclado en el color correspondiente, NBCS utilidad nada más. Sin embargo, tengo una cierta mejora cuando su función es la de comer el vómito amargo, charla loca!
Por falta de tiempo, sólo se prueba la parte azul del cálido y húmedo, ji, ji! Deshazte del resto de un color parámetros de prueba pueden ser, no es un libro, y ver por sí mismo la charla! código mejorado es el siguiente:

bool MultiChannelBlending(Mat srcImage, Mat logoImage)
{
	vector<Mat> channels;
	Mat imageBlueChannel;
	//分离色彩通道
	split(srcImage, channels);
	//将蓝色通道引用赋值
	imageBlueChannel = channels.at(0);
	//在蓝色通道中设定ROI区域,位置依旧选择左下角
	Mat imageROI = imageBlueChannel(Rect(0, srcImage.rows - logoImage.rows, logoImage.cols, logoImage.rows));
	imshow("ROI", imageROI);
	//加权线性混合
	addWeighted(imageROI, 1.0, logoImage, 0.5, 0, imageROI);
	//合并通道
	merge(channels, srcImage);

	imshow("【游戏原画+logo蓝色通道】", srcImage);
	return true;
}
void main()
{
	Mat image = imread("modao.bmp");
	Mat logo = imread("dnf_logo.jpg");
	if(MultiChannelBlending(image,logo))
		cout << "运行成功,得出你所需的图像!" << endl;
	waitKey(0);
}

En primer lugar es que el error fumado mal: Microsoft C ++ anomalías: cv :: Excepción, pila de código de error de llamada es donde los consejos

addWeighted (imageROI, 1,0, LOGOIMAGE, 0,5, 0, imageROI);

Pensé que esto no puede ser así, que en en el libro o no ,, sino también obtener 130 minutos, finalmente encuentran el error real es en esta línea

Mat logo = imread ( “dnf_logo.jpg”);

Simplemente ratón de aire, inicialmente se olvidó de añadir un 0 en la parte de atrás, en una escala de grises

Mat logo = imread ( “dnf_logo.jpg”, 0);

Pero también puede tener sentido, los resultados de la separación previa de los canales de color se pueden ver con referencia a la figura separan componentes de color individuales de una sola porción de imagen canal de escala de grises, y la Fig. Estoy usando un color logotipo, por lo que la mezcla no ponderada razonable, por no mencionar, finalmente, tuvo que dar vuelta diagrama azul que muestra un efecto de logotipoPor lo tanto, antes de realizar ponderados para asegurar que la mezcla es en escala de grisesPor supuesto, yo no he dicho que el libro ¿hay alguna manera, Qingzheziqing charla! Por cierto Tucao este error es realmente suficiente, el periódico no puede ver dónde se encuentra el problema, en realidad quieren decir "ácido cítrico de" Oh! efecto figura como la naturaleza azul:
Aquí Insertar imagen Descripción

Publicado 17 artículos originales · ganado elogios 3 · Vistas 1811

Supongo que te gusta

Origin blog.csdn.net/weixin_43350361/article/details/88363844
Recomendado
Clasificación