2014-02-21 36 views
1

我不認爲我會得到任何答覆,但這裏有:我正在開發一個執行圖像分割功能的iOS應用程序。我正在嘗試實現最簡單的方式,無需使用綠屏/鍵控即可從圖像中剪出主題。像使用OpenCV的大多數自動化解決方案都不會削減它。After Effects的Rotoscoping畫筆算法

我發現After Effects中的rotoscope畫筆工具可以有效地提示應用程序應該切出的位置。任何人都知道rotoscope刷子工具使用什麼樣的算法?

+0

該算法可能是專有的,最可能非常複雜。我的猜測是,Adobe的某個人可能會根據他們的博士論文。讓我們只是說你的iOS應用程序可能無法做到這一點。 –

+0

任何類似的算法? – ninjaneer

回答

1

檢出this page,其中包含一些關於Roto Brush工具的SIGGRAPH(計算機圖形會議)視頻演示文稿。也看看Jue Wang's paper on Video SnapCut。正如Damien猜測的那樣,對象提取依賴於一些非常強大的圖像處理算法。您可能可以在OpenCV中實現類似的功能,具體取決於您感覺的聰明/自虐。

+2

有關信息,[這是SIGGRAPH論文](http://yuwing.kaist.ac.kr/courses/CS770../reading/VideoSnapCut.pdf),描述該技術。 –

+1

糟糕。我忙於爲編輯而着迷,而@羅格羅蘭則擊敗了我。儘管如此,我想假設有兩個獨立的鏈接到同一篇論文並沒有什麼壞處。 –

1

該算法是基於圖形切割的分割算法,其中高斯混合模型(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)。

相關問題