2011-01-22 51 views
2

我想創建一個應用程序,它將通過相機捕捉一個應用程序,並以毫秒爲單位處理由它拍攝的實時圖像。OpenGL有多強大?

我們的目標是,應用程序應該改變我的衣服有一些其他的衣服,我會提供。

我有幾個問題:

不具有的OpenGL在某種程度上它會改變我的衣服在計算機圖像中修改實時圖像的這種權力?我會移動我的手和類似的東西,它是否準確,所以它會看起來像我在換衣服,而不是我穿的原始?

+3

祝你好運與這一個。非常有抱負。 – Rekin 2011-01-22 15:32:48

+3

我不是專家,但我不這麼認爲。 OpenGL用於3D圖形 – BlackBear 2011-01-22 15:33:34

+5

OpenGL也用於2D圖形。他們完美無瑕。這裏重要的是OpenGL不用於識別人的手與身體的關係。 – 2011-01-22 15:40:11

回答

3

我認爲這個問題更多的是今天的顯卡(GPU)的比對OpenGL的力量。 OpenGL只是一個訪問GPU能力的API。

GPU的今天(see my favorite and already a bit outdated chart)是非常強大的,我認爲他們可以處理你想要從他們足夠快的任務。你需要修改計算機視覺算法以便在GPU上很好地工作(並行化),並使用它們來檢測服裝段,然後替換這些段。任何這些任務都可以滿足碩士論文的要求。

的OpenGL可以幫你做的工作,但你必須自己使用的着色器(GLSL中)和紋理渲染的所有算法進行編碼。

不像其他人,我不建議使用OpenCV的,因爲它有供你使用一些嚴重的缺點:

  • 它是緩慢的,你不會達到你的任務互動的幀率,除非你有一個非常強大的CPU
  • 它不使用GPU功能(至少是穩定版本)
  • API是不直觀的 - OpenCV更多的是一個實施CV算法列表比框架。您仍然需要知道算法如何在正常情況下使用它。
8

不是權力問題。 OpenGL用於渲染3D圖形。你需要的是計算機視覺和增強現實領域。爲任務使用正確的工具。你可能想看看OpenCV。

4

OpenGL可以非常快速地添加服裝。這甚至不會開始削弱其合成圖像的能力。

然而,你可能有一個關於究竟能爲你做什麼誤解。它可以混合圖像,但你必須告訴它確切地說在哪裏繪製你的衣服,如何使它們變形等等,你將不得不自己弄清楚這些東西。 OpenGL不會幫助你找出該人的手在哪裏。

4

OpenGL是一個渲染庫;它的目的是在屏幕上畫東西。它可能可以用作解決問題的一部分,但僅用於渲染部分。你的問題還需要一些相當嚴肅的圖像處理,從相機拍攝源圖像,識別人體及其各種部位和姿勢,然後將其縮小到衣服上。

如果你穿着一件風衣,以及替換衣服(將被渲染)是像專業溜冰服一樣合適的東西?很顯然,在這種情況下,替換過程需要源圖像中不可用的信息。這需要一個預先生成的數據庫來描述你的身體,或者限制可能的替換服裝的範圍(也許只是改變水衣的圖案和/或顏色)。

查找到OpenCV,和什麼人與Kinect controller做。這並不容易。