在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对Excel进行读写操作
Mar 30 Python
简单易懂的python环境安装教程
Jul 13 Python
python实现关键词提取的示例讲解
Apr 28 Python
Caffe均值文件mean.binaryproto转mean.npy的方法
Jul 09 Python
python调用百度REST API实现语音识别
Aug 30 Python
Django JWT Token RestfulAPI用户认证详解
Jan 23 Python
centos7之Python3.74安装教程
Aug 15 Python
在Python中利用pickle保存变量的实例
Dec 30 Python
python 多线程死锁问题的解决方案
Aug 25 Python
python开发入门——set的使用
Sep 03 Python
Python类成员继承重写的实现
Sep 16 Python
用python批量解压带密码的压缩包
May 31 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/03/15 PHP
php at(@)符号的用法简介
2009/07/11 PHP
创建配置文件 用PHP写出自己的BLOG系统 2
2010/04/12 PHP
使用session判断用户登录用户权限(超简单)
2013/06/08 PHP
PHP动态生成javascript文件的2个例子
2014/04/11 PHP
php ucwords() 函数将字符串中每个单词的首字符转换为大写(实现代码)
2016/05/12 PHP
[原创]php正则删除html代码中class样式属性的方法
2017/05/24 PHP
laravel5使用freetds连接sql server的方法
2018/12/07 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
2020/03/26 PHP
jQuery UI Autocomplete 体验分享
2012/02/14 Javascript
js iframe跨域访问(同主域/非同主域)分别深入介绍
2013/01/24 Javascript
js css后面所带参数含义介绍
2013/08/18 Javascript
BOOTSTRAP时间控件显示在模态框下面的bug修复
2015/02/05 Javascript
基于JavaScript实现鼠标悬浮弹出跟随鼠标移动的带箭头的信息层
2016/01/18 Javascript
简单实现jQuery进度条轮播实例代码
2016/06/20 Javascript
极力推荐10个短小实用的JavaScript代码段
2016/08/03 Javascript
javascript iframe跨域详解
2016/10/26 Javascript
原生JS实现幻灯片
2017/02/22 Javascript
使用BootStrap实现标签切换原理解析
2017/03/14 Javascript
利用JS hash制作单页Web应用的方法详解
2017/10/10 Javascript
浅谈vux之x-input使用以及源码解读
2018/11/04 Javascript
vue改变对象或数组时的刷新机制的方法总结
2019/04/24 Javascript
深入理解 JS 垃圾回收
2019/06/03 Javascript
[00:27]DOTA2次级职业联赛 - Lilith战队宣传片
2014/12/01 DOTA
[01:05:36]VP vs TNC Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
Python连接SQLServer2000的方法详解
2017/04/19 Python
python基于ID3思想的决策树
2018/01/03 Python
python版大富翁源代码分享
2018/11/19 Python
Python单元测试模块doctest的具体使用
2020/02/10 Python
使用Nibabel库对nii格式图像的读写操作
2020/07/01 Python
Python+Selenium随机生成手机验证码并检查页面上是否弹出重复手机号码提示框
2020/09/21 Python
法国最大电子商务平台:Cdiscount
2018/03/13 全球购物
优秀的2014年两会精神解读
2014/03/17 职场文书
夫妻婚内购房协议书
2014/10/05 职场文书
七年级作文之我的梦想
2019/10/16 职场文书
MySQL中int (10) 和 int (11) 的区别
2022/01/22 MySQL