在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 爬取微信文章
Jan 30 Python
Python中的并发处理之asyncio包使用的详解
Apr 03 Python
Python使用matplotlib实现基础绘图功能示例
Jul 03 Python
pandas.DataFrame的pivot()和unstack()实现行转列
Jul 06 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
Jul 26 Python
详解python播放音频的三种方法
Sep 23 Python
python调用matplotlib模块绘制柱状图
Oct 18 Python
Python django搭建layui提交表单,表格,图标的实例
Nov 18 Python
pytorch 彩色图像转灰度图像实例
Jan 13 Python
django model的update时auto_now不被更新的原因及解决方式
Apr 01 Python
python实现数字炸弹游戏程序
Jul 17 Python
Django中session进行权限管理的使用
Jul 09 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利用header跳转失效的解决方法
2014/10/24 PHP
thinkPHP中验证码的简单使用方法
2015/12/26 PHP
Yii框架学习笔记之session与cookie简单操作示例
2019/04/30 PHP
jQuery 使用个人心得
2009/02/26 Javascript
JavaScript 监听textarea中按键事件
2009/10/08 Javascript
初试jQuery EasyUI 使用介绍
2010/04/01 Javascript
ExtJS 设置级联菜单的默认值
2010/06/13 Javascript
JS无法捕获滚动条上的mouse up事件的原因猜想
2012/03/21 Javascript
Node.js实现在目录中查找某个字符串及所在文件
2014/09/03 Javascript
浅谈Javascript变量作用域问题
2014/12/16 Javascript
jQuery中closest()函数用法实例
2015/01/07 Javascript
Javascript控制div属性动态变化实例分析
2015/10/08 Javascript
jQuery插件编写步骤详解
2016/06/03 Javascript
JavaScript中this的用法实例分析
2016/12/19 Javascript
Nodejs之http的表单提交
2017/07/07 NodeJs
Vue 创建组件的两种方法小结(必看)
2018/02/23 Javascript
在vue项目中使用sass的配置方法
2018/03/20 Javascript
解决layui前端框架 form表单,table表等内置控件不显示的问题
2018/08/19 Javascript
微信小程序页面传多个参数跳转页面的实现方法
2019/05/17 Javascript
举例讲解Linux系统下Python调用系统Shell的方法
2015/11/07 Python
python&amp;MongoDB爬取图书馆借阅记录
2016/02/05 Python
numpy中实现ndarray数组返回符合特定条件的索引方法
2018/04/17 Python
python3模块smtplib实现发送邮件功能
2018/05/22 Python
Python定时任务sched模块用法示例
2018/07/16 Python
Python Web框架之Django框架cookie和session用法分析
2019/08/16 Python
Pytorch 定义MyDatasets实现多通道分别输入不同数据方式
2020/01/15 Python
Python基于pandas爬取网页表格数据
2020/05/11 Python
网络安全方面的面试题
2015/11/04 面试题
一套中级Java程序员笔试题
2015/01/14 面试题
面试后的英文感谢信
2014/02/01 职场文书
超市开店计划书
2014/09/15 职场文书
护士医德医风自我评价
2014/09/15 职场文书
2015年班级元旦晚会活动总结
2014/11/28 职场文书
2015年幼儿园学前班工作总结
2015/05/18 职场文书
罗马假日观后感
2015/06/08 职场文书
2019大学生预备党员转正思想汇报
2019/06/21 职场文书