0

我正在将 opencv# 用于一个项目并尝试合并两个图像(一个是具有 3 个通道的图像,另一个是单通道图像)。我尝试使用方法 Cv.ScaleAdd,但它不会合并具有不同通道的两个图像。我需要一些帮助。提前致谢。

4

1 回答 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 回答