如何将掩码传递给cv :: convertScaleAbs?

时间:2014-04-29 08:40:41

标签: opencv mask

我想保存一些CPU而不是迭代我感兴趣的矩形中的像素。 如何安全地扩展函数cv :: convertScaleAbs以将8位掩码传递给它?

2 个答案:

答案 0 :(得分:0)

您应首先通过以下方式获取蒙版图像(例如maskedImage

inputImage.copyTo(maskedImage, mask);

然后,只需将此蒙面图像(即maskedImage)传递给cv::convertScaleAbs()

答案 1 :(得分:0)

恕我直言,没有可能将8位掩码传递给cv :: convertScaleAbs,但你总是可以使用Mat :: operator()只在roi本身上工作:

convertScaleAbs(imgfc3(roi), outputScaled, 255.0);

我很确定它不会迭代您不感兴趣的像素。但它的缺点是它需要复制。

...结果是,你可以将相同的参数传递给convertScaleAbs并且它正在工作:

Mat r = imgfc3(roi);
convertScaleAbs(r, r, 255.0);

但是它会复制一份。