我正在使用 OpenCV 的抓取算法在 android 中对图像进行背景减除。算法运行良好,但给出的结果不准确。
例如。我的输入图像是:
输出图像如下所示:
那么我们如何提高Grabcut算法的准确性呢?
P.S:由于声誉低而没有上传示例图像,对此表示歉意:(
我已经与同样的问题作斗争有一段时间了。我对此有一些提示和技巧
1> 改良你的种子。考虑到 GrabCut 基本上是一个黑匣子,您向其提供种子并期望分割的图像作为输出,种子是您可以控制的,因此选择好的种子变得势在必行。如果您对要分割的图像有一定的期望,您可以在这方面执行许多操作。对于一些情况,请考虑以下内容:
a> 你的形象中有人类吗?使用面部检测器查找面部并将这些像素标记为您认为合适的可能/确定的前景。您还可以在某些感兴趣的区域内使用肤色模型来进一步细化您的种子
b> 如果您有一些关于分割后期望的前景类型的数据,您可以训练颜色模型并使用它们来标记更多像素
这样的名单还会继续下去。您需要创造性地想出不同的方法来添加更准确的种子。
2> 后处理:尝试简单的后处理技术,例如打开和关闭操作,以平滑您的 fgmask。它们将帮助您消除最终输出中的大量噪音。
一般来说,图切(以及抓取切)往往会快速捕捉到边缘,因此如果您的前景边界附近有强边缘,则结果可能会不准确。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)