Compare 2 images and find % difference [closed]

二次信任 提交于 2019-12-13 03:48:21

问题


I want to compare two images and know the % difference between them. I am using raspbian on raspberry pi and python language. I have found PIL and magickimage, but with magick image I can't find a function for this and with PIL I have strange results.

For Pil i use this code :

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

When i take two pics ( no difference ) with 0.5 seconds of intervall i have this results : rms = 4743.766.... If i move during between the two pics i have rms : 4699.288..... So it's does not make the difference between the two " sames " images and when i move :/


回答1:


Use compare which is part of ImageMagick. Like this:

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

The AE gives the absolute error, in terms of a count of the number of pixels difference. You can also use MAE (mean absolute error), or PAE (peak absolute error) or RMSE (root mean square error). You can also add a fuzz factor to allow slight differences in pixel values like this:

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

If you want the answer in a shell variable, say ndiff, you can do this:

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


来源:https://stackoverflow.com/questions/27378134/compare-2-images-and-find-difference

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!