2011-03-29 92 views
5

我正在尋找一種工具,可以以自動化的方式從圖像中刪除背景,需要零人爲交互。我目前正在使用名爲Image Magick的工具(http://www.imagemagick.org/script/index.php)進行實驗。我正在使用我拍攝的實際照片。我首先拍攝一張背景照片,然後我將一個物體引入同一幀,然後再拍攝一張照片。我在三腳架上安裝了攝像機,以免發生移動。該對象投射的陰影似乎影響結果以及背景的紋理。只要我可以成功刪除整個背景而無需在Photoshop(或任何其他圖像編輯應用程序)中觸摸它,我不介意是否需要更多時間準備場景。我與ImageMagick面臨的問題是它也在前景中刪除部分對象。有誰知道如何「準備」場景的任何其他工具或建議,我可以乾淨地使用此工具或其他任何方式清除背景?所有提示/建議/建議非常感謝。感謝大家!自動圖像背景刪除軟件

+0

你想過爲什麼有些部分被刪除的任何想法?他們有和背景一樣的顏色嗎? – 2011-03-29 16:17:30

+0

嗨帕克 - 好問題。在某些情況下,對象與背景顏色相同,但在其他情況下不是。我正在努力尋找完美的設置,以便從那裏得到準備場景所需的東西。我嘗試了針對不同顏色背景和不同紋理背景(即粗糙牆壁,光滑牆壁,木柵欄等)的不同顏色對象。你能告訴我,如果你能夠拍攝一些東西,並使用imagemagick完全從其中刪除背景嗎? – 2011-03-29 17:40:15

+0

我正在用下面的答案寫下的命令從圖像中刪除背景。我的情況有點不同,因爲我正在處理衛星圖像。每隔15分鐘我會用雲覆蓋獲得圖像。我想刪除背景(地球),所以我使用無雲日的圖像作爲背景,並應用下面的命令。它工作正常,因爲雲是白色的,我的背景沒有任何白色像素。 – 2011-03-30 08:08:05

回答

6

你是如何使用Imagemagick的?我正在做一個類似的項目,使用這個命令:

# Detect modified pixels 
composite -compose difference picture1.jpg picture2.jpg diff.png 
# Ignore minor differences (jpeg noise) 
convert -threshold 25% diff.png diff2.png 
# Apply mask 
composite -compose CopyOpacity diff2.png picture.jpg result.png 

注:我使用了一個非常老的imageMagick版本(6.2.4.3)。命令語法可能已更改。

+0

嗨帕克。我們使用它是這樣的:convert overlaid.jpg background.jpg -compose ChangeMask -fuzz 10000 -composite background_removed.png – 2011-03-29 15:40:48

+0

任何機會我可以讓你的電子郵件地址Paco直接溝通,並問你更多關於imagemagick的問題?也許你可以幫助我? – 2011-03-29 19:40:22

+0

我很抱歉,但我認爲問題應該保存在Stackoverflow中,以便其他程序員可以通過類似問題閱讀它們。此外,問題會得到更多的觀衆,可能會得到更多的答案。 – 2011-03-30 07:58:05

6

試試這個(使用ImageMagick):

convert picture.jpg -fill none -fuzz 12% -draw "matte 0,0 floodfill" -flop -draw "matte 0,0 floodfill" -flip -draw "matte 0,0 floodfill" -flop -draw "matte 0,0 floodfill" -flip result.png 

它基本上需要一個圖像文件(即picture.jpg),並用12%的模糊因數(你可以用更好的成績這個值打)floodfills的圖像基於圖像四角的像素顏色。經過這一過程,輸出的圖像是result.png。基於這個帖子

http://snippets.aktagon.com/snippets/558-how-to-remove-a-background-with-imagemagick