在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中的With语句
Mar 18 Python
Python 提取dict转换为xml/json/table并输出的实现代码
Aug 28 Python
详解TensorFlow在windows上安装与简单示例
Mar 05 Python
TensorFlow实现Softmax回归模型
Mar 09 Python
Django实现全文检索的方法(支持中文)
May 14 Python
python调用c++ ctype list传数组或者返回数组的方法
Feb 13 Python
python中的&amp;&amp;及||的实现示例
Aug 07 Python
解决django model修改添加字段报错的问题
Nov 18 Python
python NumPy ndarray二维数组 按照行列求平均实例
Nov 26 Python
python处理RSTP视频流过程解析
Jan 11 Python
python属于解释型语言么
Jun 15 Python
python实现经典排序算法的示例代码
Feb 07 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
ajax+php打造进度条代码[readyState各状态说明]
2010/04/12 PHP
php switch语句多个值匹配同一代码块的实现
2014/03/03 PHP
解决Yii2邮件发送结果返回成功,但接收不到邮件的问题
2017/05/23 PHP
YII2框架中查询生成器Query()的使用方法示例
2020/03/18 PHP
suggestion开发小结以及对键盘事件的总结(针对中文输入法状态)
2011/12/20 Javascript
jquery实现TAB选项卡鼠标经过带延迟效果的方法
2015/07/27 Javascript
Vue.js组件tree实现省市多级联动
2016/12/02 Javascript
AngularJs表单校验功能实例代码
2017/02/09 Javascript
layui从数据库中获取复选框的值并默认选中方法
2018/08/15 Javascript
vue.js实现图书管理功能
2019/09/24 Javascript
非常漂亮的js烟花效果
2020/03/10 Javascript
详解webpack-dev-middleware 源码解读
2020/03/23 Javascript
javascript用defineProperty实现简单的双向绑定方法
2020/04/03 Javascript
vue 百度地图(vue-baidu-map)绘制方向箭头折线实例代码详解
2020/04/28 Javascript
JS倒计时两种实现方式代码实例
2020/07/27 Javascript
jQuery实现动态向上滚动
2020/12/21 jQuery
如何使用RoughViz可视化Vue.js中的草绘图表
2021/01/30 Vue.js
[06:30]DOTA2英雄梦之声_第15期_死亡先知
2014/06/21 DOTA
django使用django-apscheduler 实现定时任务的例子
2019/07/20 Python
Python django搭建layui提交表单,表格,图标的实例
2019/11/18 Python
Python实现使用dir获取类的方法列表
2019/12/24 Python
python多进程下的生产者和消费者模型
2020/05/07 Python
使用keras时input_shape的维度表示问题说明
2020/06/29 Python
tensorflow下的图片标准化函数per_image_standardization用法
2020/06/30 Python
Python爬取某平台短视频的方法
2021/02/08 Python
利用Opencv实现图片的油画特效实例
2021/02/28 Python
详解window.open被浏览器拦截的解决方案
2019/07/18 HTML / CSS
P/Invoke是什么
2015/07/31 面试题
维德科技C#面试题笔试题
2015/12/09 面试题
村党支部书记承诺书
2014/05/29 职场文书
测绘工程专业求职信
2014/07/15 职场文书
专业技术人员年度考核评语
2014/12/31 职场文书
家长会感言
2015/08/01 职场文书
关于分班的感言
2015/08/04 职场文书
详细介绍python类及类的用法
2021/05/31 Python
logback 实现给变量指定默认值
2021/08/30 Java/Android