【发布时间】:2018-09-27 12:02:05
【问题描述】:
我正在使用 OpenCV,我有一个灰度图像,它是对二进制掩码进行平滑操作的结果:
我想将此遮罩应用于给定的 RGB 图像,但使用带有遮罩选项的copyTo 方法会考虑遮罩的所有非零像素。但是,我感兴趣的是获得一个输出图像,其 RGB 像素值是由灰度掩码给出的因子按像素“缩放”的输入值。
我觉得这可以通过使用 OpenCV 的内置函数来实现,但到目前为止我找不到任何方法来做我想做的事情。
我会知道如何以蛮力的方式从头开始,但如果可能的话,我更喜欢使用内置函数。
提前谢谢你!
【问题讨论】:
-
cv::addWeighted怎么样? -
你会如何使用它?
addWeighted考虑单个标量值,而不是我需要的标量矩阵... -
将掩码矩阵归一化为0-1 (cv::normalize(maskImg, dstMask, 0., 1., cv::NORM_MINMAX, CV_32F) 然后与图像相乘
-
@api55 我什至不会费心规范化,一个简单的
convertToCV_32F规模为 1./255 就可以了。 -
@DanMašek true,这样会更好,如果没有最大值(0 或 255),规范化可能会更改掩码值#
标签: c++ opencv image-processing mask smoothing