美文网首页子墨子程序员今日看点
新手向——如何用python比较图片的不同

新手向——如何用python比较图片的不同

作者: treelake | 来源:发表于2016-10-27 09:20 被阅读3607次

How to Create a Diff of an Image in Python

准备两张不同的图片

  • 原图


    瀑布-200x300.jpg
  • 修改后(在左下角增加了文字)


    瀑布改-200x300.jpg

比较不同

  • 使用PIL(Pillow library)库
    安装 pip install pillow,然后直接用其中的ImageChops函数
from PIL import Image
from PIL import ImageChops 

def compare_images(path_one, path_two, diff_save_location):
    """
    比较图片,如果有不同则生成展示不同的图片
 
    @参数一: path_one: 第一张图片的路径
    @参数二: path_two: 第二张图片的路径
    @参数三: diff_save_location: 不同图的保存路径
    """
    image_one = Image.open(path_one)
    image_two = Image.open(path_two)
 
    diff = ImageChops.difference(image_one, image_two)
 
    if diff.getbbox() is None:
        # 图片间没有任何不同则直接退出
        return
    else:
        diff.save(diff_save_location)
 
if __name__ == '__main__':
    compare_images('/path/to/瀑布.jpg',
                   '/path/to/瀑布改.jpg',
                   '/path/to/不同.jpg')
  • 结果,底部的不同被显示出来了


    不同-200x300.jpg

其它

相关文章

网友评论

  • c939a0fbc1b4:大神...求赐教
  • c939a0fbc1b4:两张一样的图作比较,为什么会生成一张全黑的图片,没有区别不是应该直接返回吗
    ryh000:我的也是,一样的图片生成了全黑的图片,有解决的办法吗?
    treelake:请还原代码场景。我这里测试同一张图片比较是返回None
  • 谢三弟:= = 其实就是一个裤子的用法啊
    谢三弟:@treelake soga,写 Java 写多了,类比出来就觉得这种完全没有必要哈哈哈。语言差异~
    treelake:@谢三弟 哈哈,python大部分的功能都是现成的,不过这样对于新手比较友好。
  • casaba:这和那个鉴别色情照片的不一样啊
    treelake:@casaba 有关系吗。。跟雅虎那个是两回事啊
  • 一个小前端:大家来找茬
    treelake:@程序猿大叔 :smile:
  • 小彤花园:可以用来玩找不同了:smile:
    treelake: @小彤花园 😂

本文标题:新手向——如何用python比较图片的不同

本文链接:https://www.haomeiwen.com/subject/ofvjuttx.html