我想在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函数中。我不确定如何混合这两个图像。
答案 0 :(得分:1)
在cvtcolor
之后,您的灰度图像位于一个通道中。执行threshold
后将其更改回三个频道。因此,在threshold
和addWeighted
之间添加语句:
cv::cvtColor ( copy, copy, CV_GRAY2BGR );
另外,我不确定你想要达到什么目的。如果您只想提取白色区域,最好使用cv::bitwise_and
。