我需要開發一個軟件,從背景爲普通顏色(綠色,如電影中)的照片中選擇一張臉。如何以編程方式檢測圖像的背景?
然後我們想用另一個背景圖像來組成這個選擇,這個部分很容易用很多庫。但我不知道我該如何做選擇?你可以給一些鏈接或圖書館進行調查嗎?我可以用我選擇的任何語言來完成這個項目,所以歡迎使用任何語言的示例或鏈接。
我需要開發一個軟件,從背景爲普通顏色(綠色,如電影中)的照片中選擇一張臉。如何以編程方式檢測圖像的背景?
然後我們想用另一個背景圖像來組成這個選擇,這個部分很容易用很多庫。但我不知道我該如何做選擇?你可以給一些鏈接或圖書館進行調查嗎?我可以用我選擇的任何語言來完成這個項目,所以歡迎使用任何語言的示例或鏈接。
好吧,你要做的是叫做色度鍵。就像你說的,它在電影中用了很多藍色/綠色的屏幕。在windows上,它實際上很容易做到,因爲它作爲GDI +的一部分內置於窗口中(或者在C#上,我認爲它只是稱爲Graphics類)。
我沒有任何的示例代碼方便,但這個過程是非常簡單的:
在GDI +中,您將創建前景圖像(帶有綠色背景)的位圖對象。然後創建一個ImageAttributes對象。使用ImageAttribute的對象的SetColorKey()方法指定要用作背景顏色的顏色或顏色範圍。最後,在目標位圖上繪製位圖對象,GDI +將繪製它,就好像背景顏色是透明的。
在代碼中還有更多,但在概念上,這就是它的一切。
這可能是一個比RGB更容易在其他空間工作的區域 - 例如HSV。
我也看看OpenCV庫。
從概念上講,這其實很簡單 - 只需將綠色背景像素轉換爲0 alpha值,然後將圖像繪製到背景圖像上。在實踐中,它可能會在邊界邊緣有點棘手。你能更詳細地描述一下你正在使用的技術嗎?即,這是Windows,C++等。 – GrandmasterB 2010-09-07 20:50:44
GrandmasterB,謝謝你的回覆。我可以在Windows中使用任何語言或plataform,我在考慮使用Java或C#。你能分享一個鏈接或例子嗎?我想做一些研究,但我無法在Google中找到太多信息。 – Castro 2010-09-07 23:17:08