美文网首页子墨子程序员今日看点
新手向——如何用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