比较2张图片,找出%差异

时间:2014-12-09 11:42:57

标签: python image difference

我想比较两张图片并知道它们之间的百分比差异。我在raspberry pi和python语言上使用raspbian。我找到了PIL和magickimage,但是有了magick图像,我无法找到这个功能,而且使用PIL我会得到奇怪的结果。

对于Pil我使用此代码:

h1 = image1.histogram()
h2 = image2.histogram()
rms = math.sqrt(reduce(operator.add,map(lambda a,b: (a-b)**2, h1, h2))/len(h1))

当我拍摄两张照片(没有差异)和0.5秒的intervall我有这个结果:rms = 4743.766 ....如果我在两张照片之间移动我有rms:4699.288 ..... 所以它并没有区分两者之间的差异。相同"图像,当我移动时:/

1 个答案:

答案 0 :(得分:1)

使用属于ImageMagick的compare。像这样:

compare -metric AE image1.png image2.png null:

AE给出绝对误差,以像素数的差数计算。您还可以使用MAE(平均绝对误差)或PAE(峰值绝对误差)或RMSE(均方根误差)。您还可以添加fuzz因子,以允许像素值略有差异,如下所示:

compare -fuzz 10% -metric AE image1.png image2.png null:

如果你想要一个shell变量的答案,比如ndiff,你可以这样做:

ndiff=`compare -fuzz 10% -metric AE image1.png image2.png null: `
echo $ndiff
相关问题