我正在寻找一种使用python分析图像相似性的好方法。 我不是在寻找一种方法来确定两个图像是否相同。我只是想找到一种方法来确定两个图像之间的相似性(例如,如果两个图像非常相似,它们可以被赋予9/10的“等级”;如果它们完全不相同,它们将被给予一个非常相似的低指数,如2/10)。 从我已经完成的一些阅读中,已经建议使用模块ImageChops - 但是,我还没有找到下载它的方法。 如果有人知道如何下载它,或者有其他有效解决方案的建议,我将非常感谢他们的建议!
提前致谢!
答案 0 :(得分:5)
ImageChops is a module from PIL(Pillow)。要使用ImageChops功能,您需要pip install Pillow
或easy_install Pillow
或download the src&然后从CMD CD中提取src到提取的文件夹&运行python setup.py install
。
要使用ImageChops,您可以执行此操作from PIL import ImageChops
你可以阅读document section
一些基本用法示例http://effbot.org/imagingbook/imagechops.htm
检查两张图片之间的区别:
import Image
from PIL import ImageChops
im1 = Image.open("splash.png")
im2 = Image.open("splash2.png")
diff = ImageChops.difference(im2, im1)
有一个compare images script,但它不是PIL;它在scipy module上 您也可以查看this script here
答案 1 :(得分:3)
ImageChops是一个属于Python Image Library(PIL)的模块。请注意,ImageChops中没有内置的图像相似度算法(像素方式除外),而是用于编写自己的算法的工具。这里有一篇文章: How can I quantify difference between two images?
ImageChops模块包含许多算术图像操作,称为通道操作(“chops”)。这些可用于各种目的,包括特殊效果,图像合成,算法绘画等。 http://effbot.org/imagingbook/imagechops.htm
您可以在此处下载Python Image Library。 http://www.pythonware.com/products/pil/
Windows用户也有预编译包。 http://www.lfd.uci.edu/~gohlke/pythonlibs/