在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实现自动更换ip的方法
May 05 Python
详解python中executemany和序列的使用方法
Aug 12 Python
python+POP3实现批量下载邮件附件
Jun 19 Python
Django实战之用户认证(初始配置)
Jul 16 Python
flask入门之表单的实现
Jul 18 Python
基于python实现聊天室程序
Jul 27 Python
python爬虫之urllib库常用方法用法总结大全
Nov 14 Python
Python+OpenCV+pyQt5录制双目摄像头视频的实例
Jun 28 Python
Python3 chardet模块查看编码格式的例子
Aug 14 Python
Django调用支付宝接口代码实例详解
Apr 04 Python
如何基于线程池提升request模块效率
Apr 18 Python
Python3实现英文字母转换哥特式字体实例代码
Sep 01 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
星际争霸中的热键
2020/03/04 星际争霸
php过滤html中的其他网站链接的方法(域名白名单功能)
2014/04/24 PHP
php实现多维数组中每个单元值(数字)翻倍的方法
2015/02/16 PHP
javascript jQuery $.post $.ajax用法
2008/07/09 Javascript
jQuery dialog 异步调用ashx,webservice数据的代码
2010/08/03 Javascript
JavaScript实现快速排序(自已编写)
2012/12/19 Javascript
javascript中文本框中输入法切换的问题
2013/12/10 Javascript
jquery获取元素索引值index()示例
2014/02/13 Javascript
JavaScript列表框listbox全选和反选的实现方法
2015/03/18 Javascript
javascript实现简单的html5视频播放器
2015/05/06 Javascript
js实现登陆遮罩效果的方法
2015/07/28 Javascript
使用postMesssage()实现跨域iframe页面间的信息传递方法
2016/03/29 Javascript
JS中使用apply方法通过不同数量的参数调用函数的方法
2016/05/31 Javascript
最全的Javascript编码规范(推荐)
2016/06/22 Javascript
javaScript产生随机数的用法小结
2018/04/21 Javascript
浅谈Angular6的服务和依赖注入
2018/06/27 Javascript
VUE在for循环里面根据内容值动态的加入class值的方法
2018/08/12 Javascript
详解js中Array的方法及技巧
2018/09/12 Javascript
详解nodejs http请求相关总结
2019/03/31 NodeJs
Vue的click事件防抖和节流处理详解
2019/11/13 Javascript
vue项目中使用eslint+prettier规范与检查代码的方法
2020/01/16 Javascript
js实现登录拖拽窗口
2020/02/10 Javascript
python使用scrapy解析js示例
2014/01/23 Python
Python嵌套式数据结构实例浅析
2019/03/05 Python
Tensorflow安装问题: Could not find a version that satisfies the requirement tensorflow
2020/04/20 Python
简单了解Python多态与属性运行原理
2020/06/15 Python
python smtplib发送多个email联系人的实现
2020/10/09 Python
英国在线泳装店:Simply Swim
2019/05/05 全球购物
毕业生的自我评价范文
2013/12/31 职场文书
工艺工程师岗位职责
2014/03/04 职场文书
文明生主要事迹
2014/05/25 职场文书
抗震救灾标语
2014/06/26 职场文书
大学生村官个人对照检查材料(群众路线)
2014/09/26 职场文书
个人遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
导游词之麻姑仙境
2019/11/18 职场文书
python使用pygame创建精灵Sprite
2021/04/06 Python