在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 相关文章推荐
Cpy和Python的效率对比
Mar 20 Python
Python之str操作方法(详解)
Jun 19 Python
R语言 vs Python对比:数据分析哪家强?
Nov 17 Python
python生成ppt的方法
Jun 07 Python
快速解决pandas.read_csv()乱码的问题
Jun 15 Python
Python之时间和日期使用小结
Feb 14 Python
基于python生成器封装的协程类
Mar 20 Python
Python对象转换为json的方法步骤
Apr 25 Python
Python PyInstaller库基本使用方法分析
Dec 12 Python
flask框架渲染Jinja模板与传入模板变量操作详解
Jan 25 Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
Jun 01 Python
Python小白学习爬虫常用请求报头
Jun 03 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 fastcgi模式上传大文件(大约有300多K)报错
2014/09/28 PHP
PHP魔术方法使用方法汇总
2016/02/14 PHP
PHP strip_tags() 去字符串中的 HTML、XML 以及 PHP 标签的函数
2016/05/22 PHP
[原创]php正则删除img标签的方法示例
2017/05/27 PHP
PHP实现八皇后算法
2019/05/06 PHP
DHTML 中的绝对定位
2006/11/26 Javascript
javascript基本算法汇总
2016/03/09 Javascript
浅谈JavaScript的全局变量与局部变量
2016/06/10 Javascript
JS控制层作圆周运动的方法
2016/06/20 Javascript
Bootstrap的fileinput插件实现多文件上传的方法
2016/09/05 Javascript
微信小程序访问node.js接口服务器搭建教程
2017/04/25 Javascript
vue数据双向绑定的注意点
2017/06/23 Javascript
vuejs父子组件之间数据交互详解
2017/08/09 Javascript
微信小程序中使用ECharts 异步加载数据的方法
2018/06/27 Javascript
React router动态加载组件之适配器模式的应用详解
2018/09/12 Javascript
angular6根据environments配置文件更改开发所需要的环境的方法
2019/03/06 Javascript
简谈创建React Component的几种方式
2019/06/15 Javascript
[40:03]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#1EHOME VS Archon
2016/03/02 DOTA
Python使用htpasswd实现基本认证授权的例子
2014/06/10 Python
python使用socket连接远程服务器的方法
2015/04/29 Python
Python正则表达式经典入门教程
2017/05/22 Python
python僵尸进程产生的原因
2017/07/21 Python
python requests更换代理适用于IP频率限制的方法
2019/08/21 Python
Python使用matplotlib绘制三维参数曲线操作示例
2019/09/10 Python
利用Python的sympy包求解一元三次方程示例
2019/11/22 Python
pycharm双击无响应(打不开问题解决办法)
2020/01/10 Python
个人简历中自我评价
2014/02/11 职场文书
会计员岗位职责
2014/03/15 职场文书
无偿献血倡议书
2014/04/14 职场文书
竞选演讲稿范文大全
2014/05/12 职场文书
公务员培的训心得体会
2014/09/01 职场文书
2015年房产销售工作总结范文
2015/05/22 职场文书
劳动争议仲裁代理词
2015/05/25 职场文书
聊一聊Redis与MySQL双写一致性如何保证
2021/06/26 Redis
TV动画《史上最强大魔王转生为村民A》番宣CM公布
2022/04/01 日漫
使用python绘制分组对比柱状图
2022/04/21 Python