在python中利用opencv简单做图片比对的方法


Posted in Python onJanuary 24, 2019

下面代码中利用了两种比对的方法,一 对图片矩阵(m x m)求解特征值,通过比较特征值是否在一定的范围内,判断图片是否相同。二 对图片矩阵(m x m)中1求和,通过比较sum和来比较图片。

# -*- coding: utf-8 -*-
import cv2 as cv
import numpy as np
import os
file_dir_a='C:\Users\wt\Desktop\data\image1\\'
file_dir_b='C:\Users\wt\Desktop\data\image\\'
savepath='.\'

all_file_name_a=os.listdir(file_dir_a)
all_file_name_b=os.listdir(file_dir_b)
image_all_a=[]
image_all_b=[]
for name in all_file_name_a:
  image_one=[]
  image = cv.imread(file_dir_a+name, cv.IMREAD_GRAYSCALE)
  """arg是计算输入图片矩阵的特征值,通过对特征值的比较来实现图片的比对
  """
  # arg=np.linalg.eigvals(image) 
  """arg是计算输入二值图片矩阵中1的个数,通过1的总数来实现图片的比对
  """
  arg=sum(image)
  image_one.append(name)
  image_one.append(arg)
  image_all_a.append(image_one)#将一个图片的信息写入
  print '读入a'
# np.save('img_a.npy',image_all_a)
for name in all_file_name_b:
  image_one=[]
  image = cv.imread(file_dir_b+name, cv.IMREAD_GRAYSCALE)
  """同上
  """
  # arg=np.linalg.eigvals(image)
  arg=sum(image)
  image_one.append(name)
  image_one.append(arg)
  image_all_b.append(image_one)#将一个图片的信息写入
  print '读入b'
# np.save('img_b.npy',image_all_b)
print '开始比较'
result_all=[]
for a in image_all_a: #比较小的
  result = []
  for b in image_all_b:
    # print sum(a[1]-b[1])
    if abs(sum(a[1]-b[1]))<0.00001:
      result.append(a[0])
      result.append(b[0])
      result_all.append(result)
print '比较结束'
print result_all

np.save('match_result1.npy',result_all)

以上这篇在python中利用opencv简单做图片比对的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python操作数据库之sqlite3打开数据库、删除、修改示例
Mar 13 Python
Python字典简介以及用法详解
Nov 15 Python
python读写json文件的简单实现
Apr 11 Python
Python 装饰器实现DRY(不重复代码)原则
Mar 05 Python
使用Python的Django和layim实现即时通讯的方法
May 25 Python
python数据挖掘需要学的内容
Jun 23 Python
PyQT5 QTableView显示绑定数据的实例详解
Jun 25 Python
用Python解数独的方法示例
Oct 24 Python
在Anaconda3下使用清华镜像源安装TensorFlow(CPU版)
Apr 19 Python
Python使用Chrome插件实现爬虫过程图解
Jun 09 Python
python开发一个解析protobuf文件的简单编译器
Nov 17 Python
python3爬虫GIL修改多线程实例讲解
Nov 24 Python
正确理解Python中if __name__ == '__main__'
Jan 24 #Python
对python读取CT医学图像的实例详解
Jan 24 #Python
python 读取dicom文件,生成info.txt和raw文件的方法
Jan 24 #Python
Python可视化mhd格式和raw格式的医学图像并保存的方法
Jan 24 #Python
python Selenium实现付费音乐批量下载的实现方法
Jan 24 #Python
在python下读取并展示raw格式的图片实例
Jan 24 #Python
Python字典的核心底层原理讲解
Jan 24 #Python
You might like
PHP中Trait及其应用详解
2017/02/14 PHP
thinkphp关于简单的权限判定方法
2017/04/03 PHP
laravel通用化的CURD的实现
2019/12/13 PHP
PHP实现简易图形计算器
2020/08/28 PHP
document.all与WEB标准
2020/05/13 Javascript
懒就要懒到底——鼠标自动点击(含时间判断)
2007/02/20 Javascript
在textarea文本域中显示HTML代码的方法
2007/03/06 Javascript
不用MOUSEMOVE也能滑动啊
2007/05/23 Javascript
JavaScript CSS 修改学习第四章 透明度设置
2010/02/19 Javascript
JavaScript 设计模式之组合模式解析
2010/04/09 Javascript
输入框的字数时时统计—关于 onpropertychange 和 oninput 使用
2011/10/21 Javascript
如何使用Javascript正则表达式来格式化XML内容
2013/07/04 Javascript
JavaScript动态添加style节点的方法
2015/06/09 Javascript
JavaScript基础知识及常用方法总结
2016/01/10 Javascript
js鼠标单击和双击事件冲突问题的快速解决方法
2016/07/11 Javascript
用原生js统计文本行数的简单示例
2016/08/19 Javascript
vue生成token保存在客户端localStorage中的方法
2017/10/25 Javascript
Vue下拉框回显并默认选中随机问题
2018/09/06 Javascript
详解关于React-Router4.0跳转不置顶解决方案
2019/05/10 Javascript
vue中注册自定义的全局js方法
2019/11/15 Javascript
浅谈javascript事件环微任务和宏任务队列原理
2020/09/12 Javascript
详解为什么Vue中的v-if和v-for不建议一起用
2021/01/13 Vue.js
用Python实现通过哈希算法检测图片重复的教程
2015/04/02 Python
Python os模块学习笔记
2015/06/21 Python
Python黑魔法Descriptor描述符的实例解析
2016/06/02 Python
Python爬虫requests库多种用法实例
2020/05/28 Python
python 模拟登录B站的示例代码
2020/12/15 Python
通过canvas转换颜色为RGBA格式及性能问题的解决
2019/11/22 HTML / CSS
培训主管的岗位职责
2013/11/23 职场文书
战友聚会邀请函
2014/01/18 职场文书
新郎婚宴答谢词
2014/01/19 职场文书
生物技术专业求职信
2014/06/10 职场文书
党风廉政建设个人总结
2015/03/06 职场文书
Python内置的数据类型及使用方法
2022/04/13 Python
python画条形图的具体代码
2022/04/20 Python
Python 绘制多因子柱状图
2022/05/11 Python