创建蒙版以选择黑色区域

时间:2015-10-27 07:38:31

标签: c++ opencv mask

我的图像周围有一个黑色区域,我想使用OpenCV C ++创建一个遮罩,只选择这个黑色区域,以便我可以在以后绘制它。如何在不影响图像的情况下做到这一点?

我尝试将图像转换为灰度,然后使用阈值将其转换为二进制,但它会影响我的图像,因为结果包含图像内部的黑色像素。

enter image description here

另一个问题:如果我想裁剪图像而不是画它,我该怎么办?

提前致谢,

1 个答案:

答案 0 :(得分:2)

我会解决这个问题:

  1. 以阈值1对图像进行反二值化(即所有值为0的像素都设置为1,其他所有像素都设置为0)
  2. 使用cv::findContours查找白段
  3. 删除不接触图片边框的细分
  4. 使用cv::drawContours将剩余的部分绘制为遮罩。
  5. 在运行时效率方面可能有一个更有效的解决方案,但您应该能够很快地对我的解决方案进行原型设计。