在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的Flask框架中使用Flask-SQLAlchemy管理数据库的教程
Jun 14 Python
python 递归遍历文件夹,并打印满足条件的文件路径实例
Aug 30 Python
Python反转序列的方法实例分析
Mar 21 Python
python 列表降维的实例讲解
Jun 28 Python
python随机数分布random测试
Aug 27 Python
python将处理好的图像保存到指定目录下的方法
Jan 10 Python
利用Python+阿里云实现DDNS动态域名解析的方法
Apr 01 Python
Django Rest framework频率原理与限制
Jul 26 Python
Python 实现判断图片格式并转换,将转换的图像存到生成的文件夹中
Jan 13 Python
PyCharm 在Windows的有用快捷键详解
Apr 07 Python
Python编写万花尺图案实例
Jan 03 Python
详解使用python爬取抖音app视频(appium可以操控手机)
Jan 26 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扩展图文教程
2008/12/12 PHP
php对称加密算法示例
2014/05/07 PHP
php实现的css文件背景图片下载器代码
2014/11/11 PHP
php基于表单密码验证与HTTP验证用法实例
2015/01/06 PHP
/etc/php-fpm.d/www.conf 配置注意事项
2017/02/04 PHP
PHP验证码无法显示的原因及解决办法
2017/08/11 PHP
php实现获取农历(阴历)、节日、节气的类与用法示例
2017/11/20 PHP
ThinkPHP3.2.3框架Memcache缓存使用方法实例总结
2019/04/15 PHP
学习YUI.Ext 第六天--关于树TreePanel(Part 1)
2007/03/10 Javascript
OfflineSave离线保存代码再次发布使用说明
2007/05/23 Javascript
jquery实现居中弹出层代码
2010/08/25 Javascript
理解Javascript_10_对象模型
2010/10/16 Javascript
jquery uaMatch源代码
2011/02/14 Javascript
基于jQuery替换table中的内容并显示进度条的代码
2011/08/02 Javascript
javascript实现tabs选项卡切换效果(自写原生js)
2013/03/19 Javascript
如何正确使用Nodejs 的 c++ module 链接到 OpenSSL
2014/08/03 NodeJs
js中document.write的那点事
2014/12/12 Javascript
js计算任意值之间随机数的方法
2015/01/16 Javascript
Jquery幻灯片特效代码分享--鼠标点击按钮时切换(1)
2015/08/15 Javascript
使用AngularJS 跨站请求如何解决jsonp请求问题
2017/01/16 Javascript
jQuery Chosen通用初始化
2017/03/07 Javascript
Kindeditor单独调用单图上传增加预览功能的实例
2017/07/31 Javascript
ES6学习教程之模板字符串详解
2017/10/09 Javascript
使用use注册Vue全局组件和全局指令的方法
2018/03/08 Javascript
其实你可以少写点if else与switch(推荐)
2019/01/10 Javascript
python实现对文件中图片生成带标签的txt文件方法
2018/04/27 Python
Python RabbitMQ消息队列实现rpc
2018/05/30 Python
python实现猜拳小游戏
2020/04/05 Python
在python Numpy中求向量和矩阵的范数实例
2019/08/26 Python
Python安装tar.gz格式文件方法详解
2020/01/19 Python
python如何实现读取并显示图片(不需要图形界面)
2020/07/08 Python
Python SQLAlchemy库的使用方法
2020/10/13 Python
HTML5语音识别标签写法附图
2013/11/18 HTML / CSS
创业计划书之美容店
2019/09/16 职场文书
62句有关感恩节文案(推荐收藏)
2019/11/28 职场文书
python双向链表实例详解
2022/05/25 Python