在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 获取新浪微博的最新公共微博实例分享
Jul 03 Python
Python3实现将文件树中所有文件和子目录归档到tar压缩文件的方法
May 22 Python
Python实现希尔排序算法的原理与用法实例分析
Nov 23 Python
关于Python数据结构中字典的心得
Dec 04 Python
使用Eclipse如何开发python脚本
Apr 11 Python
python用户评论标签匹配的解决方法
May 31 Python
python 用下标截取字符串的实例
Dec 25 Python
python读写文件write和flush的实现方式
Feb 21 Python
PyQt5高级界面控件之QTableWidget的具体使用方法
Feb 23 Python
python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法
Feb 26 Python
利用python绘制数据曲线图的实现
Apr 09 Python
python 基于UDP协议套接字通信的实现
Jan 22 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
海河写的 Discuz论坛帖子调用js的php代码
2007/08/23 PHP
二招解决php乱码问题
2012/03/25 PHP
php中如何判断一个网页请求是ajax请求还是普通请求
2013/08/10 PHP
php递归函数三种实现方法及如何实现数字累加
2015/08/07 PHP
一段批量给页面上的控件赋值js
2010/06/19 Javascript
按钮JS复制文本框和表格的代码
2011/04/01 Javascript
jqPlot 基于jquery的画图插件
2011/04/26 Javascript
兼容IE和Firefox的javascript获取iframe文档内容的函数
2011/08/15 Javascript
Javascript浅谈之引用类型
2013/12/18 Javascript
jQuery+jRange实现滑动选取数值范围特效
2015/03/14 Javascript
jQuery实现商品活动倒计时
2015/10/16 Javascript
Jquery对新插入的节点 绑定Click事件失效的解决方法
2016/06/02 Javascript
使用jquery获取url及url参数的简单实例
2016/06/14 Javascript
vue 挂载路由到头部导航的方法
2017/11/13 Javascript
Node.js引入UIBootstrap的方法示例
2018/05/11 Javascript
Electron 调用命令行(cmd)
2019/09/23 Javascript
[48:26]VGJ.S vs infamous Supermajor 败者组 BO3 第二场 6.4
2018/06/05 DOTA
在阿里云服务器上配置CentOS+Nginx+Python+Flask环境
2016/06/18 Python
pandas.loc 选取指定列进行操作的实例
2018/05/18 Python
简单了解python的一些位运算技巧
2019/07/13 Python
在Django admin中编辑ManyToManyField的实现方法
2019/08/09 Python
Django利用elasticsearch(搜索引擎)实现搜索功能
2020/11/26 Python
详解window.open被浏览器拦截的解决方案
2019/07/18 HTML / CSS
Lacoste美国官网:经典POLO衫品牌
2016/10/12 全球购物
Bowflex美国官方网站:高级家庭健身器材
2017/12/22 全球购物
即时搜索数百万张门票:SeatsForEveryone.com
2018/08/26 全球购物
Bose英国官方网站:美国知名音响品牌
2020/01/26 全球购物
2019年Java 最常见的 面试题
2016/10/19 面试题
秘书专业自荐信范文
2013/12/26 职场文书
乡镇庆八一活动方案
2014/02/02 职场文书
关于旅游的活动方案
2014/08/15 职场文书
幼儿园推普周活动总结
2015/05/07 职场文书
2016三严三实专题教育活动心得体会
2016/01/06 职场文书
安全教育培训心得体会
2016/01/15 职场文书
Django使用redis配置缓存的方法
2021/06/01 Redis
RestTemplate如何通过HTTP Basic Auth认证示例说明
2022/03/17 Java/Android