2011-03-29 91 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