我需要一种方法将包含人类的图像转换为仅包含一种颜色的身体sihlouette的图像。首先我看一下Canny边缘检测器(OpenCV实现),但这可能会导致图像背景出现问题。
我尝试过使用GrabCut OpenCV实现。这在大多数情况下工作正常,它具有非常糟糕的时间性能,例如对于480x320图像,处理需要1分钟。此外,抓取的问题是用户需要进行交互并设置背景区域和用户区域,在我的情况下是不允许的。
所以,也许你可以使用与GrabCut不同的东西给我一些关于另一种方法的想法,或者建议我如何增强GrabBut时间性能(也许是gpu实现)。另外,我需要一个关于定位人体的算法的建议,并帮助抓取算法定位身体/背景区域。
示例:
答案 0 :(得分:5)
答案 1 :(得分:1)
将图像缩小分辨率的一半(使用pyrDown()
),运行GrabCut,使用轮廓检测来矢量化剪切,并根据需要升级。
答案 2 :(得分:0)
OpenCV对于类似的东西来说是个不错的选择。您可以在官方网站上获得ios的预建库:
还有一个使用OpenCV的Tutorial-App,它可能具有与您所寻找的相似的能力:
答案 3 :(得分:0)