本文实例讲述了Python比较两个图片相似度的方法。分享给大家供大家参考。具体分析如下:

这段代码实用pil模块比较两个图片的相似度,根据实际实用,代码虽短但效果不错,还是非常靠谱的,前提是图片要大一些,太小的图片不好比较。附件提供完整测试代码和对比用的图片。

#!/usr/bin/python

# Filename: histsimilar.py

# -*- coding: utf-8 -*-

import Image

def make_regalur_image(img, size = (256, 256)):

return img.resize(size).convert('RGB')

def split_image(img, part_size = (64, 64)):

w, h = img.size

pw, ph = part_size

assert w % pw == h % ph == 0

return [img.crop((i, j, i+pw, j+ph)).copy() \

for i in xrange(0, w, pw) \

for j in xrange(0, h, ph)]

def hist_similar(lh, rh):

assert len(lh) == len(rh)

return sum(1 - (0 if l == r else float(abs(l - r))/max(l, r)) for l, r in zip(lh, rh))/len(lh)

def calc_similar(li, ri):

# return hist_similar(li.histogram(), ri.histogram())

return sum(hist_similar(l.histogram(), r.histogram()) for l, r in zip(split_image(li), split_image(ri))) / 16.0

def calc_similar_by_path(lf, rf):

li, ri = make_regalur_image(Image.open(lf)), make_regalur_image(Image.open(rf))

return calc_similar(li, ri)

def make_doc_data(lf, rf):

li, ri = make_regalur_image(Image.open(lf)), make_regalur_image(Image.open(rf))

li.save(lf + '_regalur.png')

ri.save(rf + '_regalur.png')

fd = open('stat.csv', 'w')

fd.write('\n'.join(l + ',' + r for l, r in zip(map(str, li.histogram()), map(str, ri.histogram()))))

# print >>fd, '\n'

# fd.write(','.join(map(str, ri.histogram())))

fd.close()

import ImageDraw

li = li.convert('RGB')

draw = ImageDraw.Draw(li)

for i in xrange(0, 256, 64):

draw.line((0, i, 256, i), fill = '#ff0000')

draw.line((i, 0, i, 256), fill = '#ff0000')

li.save(lf + '_lines.png')

if __name__ == '__main__':

path = r'testpic/TEST%d/%d.JPG'

for i in xrange(1, 7):

print 'test_case_%d: %.3f%%'%(i, \

calc_similar_by_path('testpic/TEST%d/%d.JPG'%(i, 1), 'testpic/TEST%d/%d.JPG'%(i, 2))*100)

# make_doc_data('test/TEST4/1.JPG', 'test/TEST4/2.JPG')

完整实例代码点击此处本站下载。

希望本文所述对大家的Python程序设计有所帮助。

python人脸对比相似度_Python比较两个图片相似度的方法相关推荐

  1. python两条曲线图片相似度_Python比较两个图片相似度的方法

    本文实例讲述了Python比较两个图片相似度的方法.分享给大家供大家参考.具体分析如下: 这段代码实用pil模块比较两个图片的相似度,根据实际实用,代码虽短但效果不错,还是非常靠谱的,前提是图片要大一 ...

  2. python判断图片相似度_Python比较两个图片相似度的方法

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  3. python图像分析_python分析问题步骤Python比较两个图片相似度的方法

    本文实例讲述了Python比较两个图片相似度的方法.分享给大家供大家参考.具体分析如下: 这段代码实用pil模块比较两个图片的相似度,根据实际实用,代码虽短但效果不错,还是非常靠谱的,前提是图片要大一 ...

  4. java 图片上写字_java 在图片上写字,两个图片合并的实现方法

    实例如下: package writeimg; import javax.imageio.ImageIO; import java.awt.Color; import java.awt.Font; i ...

  5. 模糊照片如何修复?分享两种图片变清晰的方法

    在我们日常生活中,难免会遇到一些照片因为拍摄环境不好或是保存方式不当而变得模糊不清.这时候,我们就需要一些技巧来修复这些模糊照片,让它们变得更加清晰明亮.下面,我将分享两种图片变清晰的方法. 方法一: ...

  6. CV之FR:基于DIY人脸图像数据集(每人仅需几张人脸图片训练)利用Hog方法提取特征和改进的kNN算法实现人脸识别并标注姓名(标注文本标签)—(准确度高达100%)

    CV之FR:基于DIY人脸图像数据集(每人仅需几张人脸图片训练)利用Hog方法提取特征和改进的kNN算法实现人脸识别并标注姓名(标注文本标签)-(准确度高达100%) 目录 基于DIY人脸图像数据集( ...

  7. java 两张图片合并_java 在图片上写字,两个图片合并的实现方法

    实例如下: package writeimg; import javax.imageio.ImageIO; import java.awt.Color; import java.awt.Font; i ...

  8. python人脸对比相似度_python人脸对比

    import sys import ssl from urllib import request,parse # client_id 为官网获取的AK, client_secret 为官网获取的SK ...

  9. 人工智能之Python人脸对比、人脸检测

    人脸对比与人脸检测 人脸对比 查看API文档 获取Access Token 图片转为base64格式 请求参数 调用 返回示例 人脸检测 代码 返回示例 错误识别错误码 人脸对比 两张人脸1 :1对比 ...

  10. 【python 走进NLP】simhash 算法计算两篇文章相似度

    互联网网页存在大量的重复内容网页,无论对于搜索引擎的网页去重和过滤.新闻小说等内容网站的内容反盗版和追踪,还是社交媒体等文本去重和聚类,都需要对网页或者文本进行去重和过滤.最简单的文本相似性计算方法可 ...

最新文章

  1. php日期选择插件,优雅的日期选择插件daterangepicker
  2. 网络工程原理与实践教程实验安排
  3. 官方推荐!用TensorFlow 2.0做深度学习入门教程
  4. 【笔记】HMM在股票指数中的简单应用
  5. 附加到SQL2012的数据库就不能再附加到低于SQL2012的数据库版本
  6. 有感:仅在面试时攻克 MySQL 还不够
  7. Python通过snmp获取交换机VLAN号、VLAN默认网关、VLAN子网掩码和ARP表中的IP地址与MAC对应记录数据
  8. 在linux中建立一个vim的目录,Linux学习笔记一(目录结构、Vim编辑器、用户管理)...
  9. idea切换视图快捷键_IDEA操作技巧:一些常用且实用的快捷键
  10. redis 获取所有的key_在微博微信场景下学习Redis数据结构
  11. 怎样用matlab拟合,怎么用用matlab拟合两条直线
  12. 机房资产管理系统linux,资产管理平台设备技术指标.doc
  13. golang base64解码编码实现
  14. Word导入与发送、一键生成PPT文案
  15. “2021流行趋势发布·新品试骑活动”引爆羊城
  16. ie6, ie7兼容性问题以及处理办法汇总
  17. ubuntu如何安装java jdk,Ubuntu下安装JDK图文详解
  18. Python实现一个简单的socket服务器
  19. glog使用与说明(转载)
  20. Pandas:深市股票代码前补足0

热门文章

  1. 建议IPC采用RTMP(server+rtmppush)的流媒体框架。
  2. java调用soap接口_java远程调用soap协议接口
  3. Android 开发中版本兼容性问题
  4. qq视频转码失败怎么办_迅捷视频转换器腾讯视频转换失败如何解决?
  5. MicroDicom viewer(Dicom格式看图软件) v3.4.7官方版
  6. c++项目开发——吃豆子游戏
  7. SpringBoot整合mybatis出现BindingException: Invalid bound statement (not found)问题解决
  8. osx86 10.4.3 BF1118 的界面
  9. 谷歌Chrome紧急更新补丁0day漏洞
  10. win7备份工具_调解 win7系统一键还原精灵使用的具体方法 -win7系统使用教程