使用GrabCut进行交互式前景提取的Python和OpenCV

2 投票
1 回答
1747 浏览
提问于 2025-04-18 04:34

我想把70张图片中的背景和前景分开。但是当我用GrabCut算法时,我发现前景也被删除了,背景也一起没了。而且问题是,我不能手动去做这个。

这是我的原始图片:

这是用GrabCut处理后的结果:

enter image description here

1 个回答

1

因为你不能手动画矩形,所以最好的办法是试着在你原始图片的内部给出一个宽度为10到20像素的边界框(就像是一个内部的边界),然后再试试看。
不过,如果你关注的前景物体在边缘的话,这样做可能会把它切掉。

为了避免这种情况,你可以检查输出图像中最大的块和黑色像素的数量,然后把这些情况下的原始像素值恢复回来,直到距离边缘10到20像素的地方。通常你需要在结果出来后进行检查,并应用一些经验法则,至少恢复回原始图像的一部分。

撰写回答