python+PIL实现图片对比

python+PIL实现图片对比

安装依赖库

pip install pillow

贴代码:

from PIL import Image
import math
import operator
from functools import reduce


def compare_images(pic1, pic2):
	# 使用Image函数拿到图片
    image1 = Image.open(pic1)
    image2 = Image.open(pic2)
    # 获取图片 RGB 的值,返回的是一个数组list
    histogram1 = image1.histogram()
    histogram2 = image2.histogram()

    # 获取 histogram 列表中的数据,
    differ = math.sqrt(reduce(operator.add, list(map(lambda a,b: (a-b)**2,histogram1, histogram2)))/len(histogram1))
    
    # differ的值为0,则表示图片相同,如果differ越大,则表示图片差异越大
    print('differ:',differ)
    if differ == 0:
        return 'same'
    else:
        return 'diff'
        
# 传两张图片的地址或者存放路径
compare_images(pic1='xxx', pic2='xxx')
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100691.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vue报错cannot read property_vue3 ref 数组

    vue报错cannot read property_vue3 ref 数组当函数执行到this.agents.splice()时,我设置了断点。发现传参index是0,但是页面上的列表项对应的第一行数据没有被删除,WTF!!!这是什么鬼!然后我打开VueDevtools,然后刷新了一下,发现那个数组的第一项还是存在的removeOneAgentByIndex:function(index){this.agents.splice(index,1)…

    2022年9月15日
    3
  • ExecuteScalar方法

    ExecuteScalar方法oRs.Open”SELECTCOUNT(*)AsiRowCountFROMOrders”iCount=oRs.Fields(“iRowCount”).ValueADO.NET引入了一种从查询的结果中获取单值的新方式,可以用于预计只返回一行和一列的场合。ADO.NETCommand对象有一个ExecuteScalar方法,它从相关的查询中返回第一行和第一列的值。因为不用创建行集、查

    2022年6月24日
    36
  • MySQL建立索引的优点和缺点

    MySQL建立索引的优点和缺点建立索引的优缺点:为什么要创建索引呢?        这是因为,创建索引可以大大提高系统的性能。         第一、通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。         第二、可以大大加快数据的检索速度,这也是创建索引的最主要的原因。         第三、可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。         第四、在使用分组和排序子句…

    2022年5月20日
    33
  • filter suction_dispatcher

    filter suction_dispatcherFilterDispatcher是struts2.0.x到2.1.2版本的核心过滤器.! StrutsPrepareAndExecuteFilter是自2.1.3开始就替代了FilterDispatcher的.!  StrutsPrepareAndExecuteFilter概要说明        FilterDispatcher是早期struts2的过滤器,后期的都…

    2022年8月16日
    4
  • latex字母斜体加粗_latex加粗字体

    latex字母斜体加粗_latex加粗字体显示直立文本: \textup{文本}意大利斜体: \textit{文本}slanted斜体: \textsl{文本}显示小体大写文本:\textsc{文本}中等权重:

    2022年8月3日
    12
  • chapter3.5内建函数「建议收藏」

    chapter3.5内建函数「建议收藏」chapter3.5内建函数

    2022年4月20日
    34

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号