当前位置: 首页 > 编程笔记 >

在python中利用opencv简单做图片比对的方法

谭炎彬
2023-03-14
本文向大家介绍在python中利用opencv简单做图片比对的方法,包括了在python中利用opencv简单做图片比对的方法的使用技巧和注意事项,需要的朋友参考一下

下面代码中利用了两种比对的方法,一 对图片矩阵(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简单做图片比对的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 我想在数字中找到长方形。 我可以找到他们时,外面的盒子是不中断与写与下面的代码。然而,当盒子被笔迹打断时,我找不到它,这是我需要帮助的部分。 代码: 如何在中断的图片中找到方框?

  • 问题内容: 有没有用Java读写Xml的简单方法? 我以前使用过SAX解析器,但我记得它不直观,我看过一些JAXB教程,而且看起来很复杂。 我不知道我是否被C#的XmlDocument类宠坏了,但是我要做的就是创建一个Xml Document,它表示一组类及其成员(有些是属性,有些是元素)。 我将研究序列化,但是XML必须具有与ac#app的输出相同的格式,而我正在反向工程为Java。 问题答案:

  • 本文向大家介绍在Python下利用OpenCV来旋转图像的教程,包括了在Python下利用OpenCV来旋转图像的教程的使用技巧和注意事项,需要的朋友参考一下 OpenCV是应用最被广泛的的开源视觉库。他允许你使用很少的代码来检测图片或视频中的人脸。 这里有一些互联网上的教程来阐述怎么在OpenCV中使用仿射变换(affine transform)旋转图片--他们并没有处理旋转一个图片里的矩形一般

  • 本文向大家介绍简单的Python抓taobao图片爬虫,包括了简单的Python抓taobao图片爬虫的使用技巧和注意事项,需要的朋友参考一下 写了一个抓taobao图片的爬虫,全是用if,for,while写的,比较简陋,入门作品。 从网页http://mm.taobao.com/json/request_top_list.htm?type=0&page=中提取taobao模特的照片。

  • 本文向大家介绍python opencv将图片转为灰度图的方法示例,包括了python opencv将图片转为灰度图的方法示例的使用技巧和注意事项,需要的朋友参考一下 使用opencv将图片转为灰度图主要有两种方法,第一种是将彩色图转为灰度图,第二种是在使用OpenCV读取图片的时候直接读取为灰度图。 将彩色图转为灰度图 img_reisze shape:(337, 600, 3) img_gra

  • 本文向大家介绍利用SpannableString和ImageSpan在textview中插入图片的方法,包括了利用SpannableString和ImageSpan在textview中插入图片的方法的使用技巧和注意事项,需要的朋友参考一下 默认的TextView是无法显示图片的。所以想要实现这个功能得需要我们自己为其添加一个方法。 在这里我们采用SpannableString和ImageSpan两