我想比较两张图片并知道它们之间的百分比差异。我在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 ..... 所以它并没有区分两者之间的差异。相同"图像,当我移动时:/
答案 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