我正在将 opencv# 用于一个项目并尝试合并两个图像(一个是具有 3 个通道的图像,另一个是单通道图像)。我尝试使用方法 Cv.ScaleAdd,但它不会合并具有不同通道的两个图像。我需要一些帮助。提前致谢。
问问题
496 次
1 回答
0
您希望结果是灰度还是彩色?添加两个图像的最简单方法是为每个图像声明一个权重。一个说 0.4,另一个说 0.6。然后逐个像素地将一个图像乘以 0.4,将另一幅图像乘以 0.6,然后将它们相加以获得新的像素值。如果您希望最终结果为灰度,则从将 3 通道图像转换为灰度开始,如果您希望它是彩色,则通过将灰度转换为彩色开始。将灰度转换为颜色实际上不会给它上色,它只会用三个通道表示灰色。您可以自己编写代码,或者我怀疑函数调用
cv::cvtColor(input,output,CV_GRAY2BGR);
or
cv::cvtColor(input,output,CV_BGR2GRAY);
其次是
cv::scaleAdd
会成功的。
于 2012-07-30T15:14:20.280 回答