我不认为我会得到任何答复,但这里有:我正在开发一个执行图像分割功能的iOS应用程序。我正在尝试实现最简单的方式,无需使用绿屏/键控即可从图像中剪出主题。像使用OpenCV的大多数自动化解决方案都不会削减它。After Effects的Rotoscoping画笔算法
我发现After Effects中的rotoscope画笔工具可以有效地提示应用程序应该切出的位置。任何人都知道rotoscope刷子工具使用什么样的算法?
我不认为我会得到任何答复,但这里有:我正在开发一个执行图像分割功能的iOS应用程序。我正在尝试实现最简单的方式,无需使用绿屏/键控即可从图像中剪出主题。像使用OpenCV的大多数自动化解决方案都不会削减它。After Effects的Rotoscoping画笔算法
我发现After Effects中的rotoscope画笔工具可以有效地提示应用程序应该切出的位置。任何人都知道rotoscope刷子工具使用什么样的算法?
检出this page,其中包含一些关于Roto Brush工具的SIGGRAPH(计算机图形会议)视频演示文稿。也看看Jue Wang's paper on Video SnapCut。正如Damien猜测的那样,对象提取依赖于一些非常强大的图像处理算法。您可能可以在OpenCV中实现类似的功能,具体取决于您感觉的聪明/自虐。
有关信息,[这是SIGGRAPH论文](http://yuwing.kaist.ac.kr/courses/CS770../reading/VideoSnapCut.pdf),描述该技术。 –
糟糕。我忙于为编辑而着迷,而@罗格罗兰则击败了我。尽管如此,我想假设有两个独立的链接到同一篇论文并没有什么坏处。 –
该算法是基于图形切割的分割算法,其中高斯混合模型(GMM)使用“局部”区域以及“全局”中的彩色像素以及先前的某种形状来训练。
OpenCV的“GrabCut”论文的“廉价黑客”implementation,其中用户指定他希望分割的对象周围的边界框。通常,只使用边界框不会给出好的结果。您将需要用户指定“前景”和“背景”像素(如在Adobe的Rotoscoping工具中所做的那样),以帮助该算法构建前景和背景色模型(在此情况下为GMM),以便它知道什么是典型的您希望分割的前景对象中的颜色,以及您想要忽略的背景中的颜色。
在这个blog上可以找到一个基本的图形切割实现。您大概可以从那里开始并尝试不同的方式来计算成本条件以获得更好的结果。
最后,“软化”边缘,一个便宜的黑客就是模糊二进制掩码,以获得值在0和1之间的掩码。然后使用掩码重组图像,即c[i][j] = mask[i][j] * fgd[i][j] + (1 - mask[i][j]) * bgd[i][j]
,在那里混合前景分段(fgd),使用掩码值作为混合权重的新背景图像(bgd)。
该算法可能是专有的,最可能非常复杂。我的猜测是,Adobe的某个人可能会根据他们的博士论文。让我们只是说你的iOS应用程序可能无法做到这一点。 –
任何类似的算法? – ninjaneer