在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中的变量和赋值运算符
Oct 12 Python
python交互式图形编程实例(一)
Nov 17 Python
100行python代码实现跳一跳辅助程序
Jan 15 Python
Python实现合并同一个文件夹下所有PDF文件的方法示例
Apr 28 Python
python3实现SMTP发送邮件详细教程
Jun 19 Python
python 以16进制打印输出的方法
Jul 09 Python
python 实现简单的FTP程序
Dec 27 Python
Python求凸包及多边形面积教程
Apr 12 Python
python接入支付宝的实例操作
Jul 20 Python
python中time.ctime()实例用法
Feb 03 Python
分享Python异步爬取知乎热榜
Apr 12 Python
Python使用pyecharts控件绘制图表
Jun 05 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变量的定义、可变变量、变量引用、销毁方法
2013/12/20 PHP
深入理解PHP JSON数组与对象
2016/07/19 PHP
thinkphp多表查询两表有重复相同字段的完美解决方法
2016/09/22 PHP
thinkphp查询,3.X 5.0方法(亲试可行)
2017/06/17 PHP
ExtJs 3.1 XmlTreeLoader Example Error
2010/02/09 Javascript
JS隐藏参数post传值实例
2013/04/18 Javascript
AngularJs根据访问的页面动态加载Controller的解决方案
2015/02/04 Javascript
jquery中$each()方法的使用指南
2015/04/30 Javascript
Bootstrap树形组件jqTree的简单封装
2016/01/25 Javascript
nodejs 中模拟实现 emmiter 自定义事件
2016/02/22 NodeJs
轻量级jQuery插件slideBox实现带底栏轮播(焦点图)代码
2016/03/28 Javascript
BootStrap下拉框在firefox浏览器界面不友好的解决方案
2016/08/18 Javascript
JavaScript中this的四个绑定规则总结
2016/09/26 Javascript
谈谈JavaScript数组常用方法总结
2017/01/24 Javascript
jQuery实现table中两列CheckBox只能选中一个的示例
2017/09/22 jQuery
微信小程序实现打开并下载服务器上面的pdf文件到手机
2019/09/20 Javascript
layui点击弹框页面 表单请求的方法
2019/09/21 Javascript
vue.js实现三级菜单效果
2019/10/19 Javascript
vue-cli在 history模式下的配置详解
2019/11/26 Javascript
微信小程序后端实现授权登录
2020/02/24 Javascript
OpenLayer3自定义测量控件MeasureTool
2020/09/28 Javascript
[01:00] DOTA2英雄背景故事第五期之重力引力法则谜团
2020/07/16 DOTA
在Python中操作文件之truncate()方法的使用教程
2015/05/25 Python
在Python程序和Flask框架中使用SQLAlchemy的教程
2016/06/06 Python
python解析html提取数据,并生成word文档实例解析
2018/01/22 Python
Windows环境下python环境安装使用图文教程
2018/03/13 Python
Python pandas.DataFrame调整列顺序及修改index名的方法
2019/06/21 Python
python使用梯度下降算法实现一个多线性回归
2020/03/24 Python
Python更改pip镜像源的方法示例
2020/12/01 Python
阿玛尼美妆加拿大官方商城:Giorgio Armani Beauty加拿大
2017/10/24 全球购物
Coggles美国/加拿大:高级国际时装零售商
2018/10/23 全球购物
美国领先的眼镜和太阳镜在线零售商:Glasses.com
2019/08/26 全球购物
俄罗斯最大的隐形眼镜销售网站:Ochkov.Net
2021/02/07 全球购物
留学生如何写好自荐信
2013/12/27 职场文书
品牌形象定位,全面分析
2019/07/23 职场文书
springcloud整合seata
2022/05/20 Java/Android