我目前正在Ubuntu 12.04.03上使用OpenCV 2.9来执行某种基于阈值的提取。
到目前为止,我在下面的源图像上执行了阈值threshold( tmp_gray, tmp_bin, 120, 255, CV_THRESH_BINARY );
和形态学操作。我尝试了变化的阈值范围,但似乎有些噪音正在被拾取。
并得到一个看起来像
的面具
我能够用src.copyTo( roi, tmp_gray );
之类的东西裁剪图像
然而,我真正想要的只是白色图像区域内的内部图像。我怀疑如果我能把面具弄好,这将是直截了当的。
我很感激任何可能有用的指导。
答案 0 :(得分:1)
您可以将图像转换为HSV颜色空间,并使用饱和通道。这使得下面的图像很容易达到阈值(由于更高的ROI)
编辑:只是尝试了阈值~100,并给出了相当不错的结果。我确定有办法进一步改善这一点。
答案 1 :(得分:0)
您可以尝试以下
在阈值处理之前在源上应用blur()。
降低阈值。
按图片投资回报率
答案 2 :(得分:0)
感谢@Haris和@James
最终获得阈值图像后
然后我使用抓取来获取
注意:我发现使用GrabCut之前的阈值处理比仅仅使用GrabCut或Threshold产生了更好的结果