我想节省一些CPU,而不是在我感兴趣的矩形中迭代太多像素。如何安全地扩展函数cv::convertScaleAbs以将8位掩码传递给它?
您应该首先通过获取屏蔽图像(例如maskedImage
)
inputImage.copyTo(maskedImage, mask);
然后,简单地将该掩蔽图像(即maskedImage
)传递给cv::convertScaleAbs()
。
IMHO不可能将8位掩码传递给cv::convertScaleAbs,但您可以始终使用Mat::operator()仅处理roi本身:
convertScaleAbs(imgfc3(roi), outputScaled, 255.0);
我很确定它不会在你不感兴趣的像素上迭代。但它的缺点是需要复制。
结果是的,你可以将相同的参数传递给convertScaleAbs,它正在工作:
Mat r = imgfc3(roi);
convertScaleAbs(r, r, 255.0);
但它仍然是复制品。