我想在OpenCV 2中混合颜色(RGB)图像和灰度图像。我目前得到运行时错误,原因似乎是我使用不同类型的每个图像像素。例如,彩色图像为CV_8U。我的代码:
cv::Mat copy;
image.copyTo(copy);
cv::cvtColor(copy, copy, CV_BGR2GRAY);
threshold(copy, copy, 0, 255,3 );
addWeighted( image, 0.5f, copy, 0.5f, 0.0,image);
错误在addWeighted函数中。我不确定如何混合这两个图像
在cvtcolor
之后,您的灰度图像在一个通道中。执行threshold
后,将其更改为三通道。因此,在threshold
和addWeighted
之间,添加语句:
cv::cvtColor ( copy, copy, CV_GRAY2BGR );
而且,我不确定你想达到什么目的。如果你只想提取白色的区域,你最好使用cv::bitwise_and
.