首页 > 其他分享 >特征匹配

特征匹配

时间:2024-02-29 15:00:42浏览次数:27  
标签:匹配 show 特征 cv2 matches img2 img1

  • 案例1
import cv2
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

img1 = cv2.imread('01_Picture/19_Box.png',0)
img2 = cv2.imread('01_Picture/20_Box_in_scene.png',0)

def cv_show(name,img):
    cv2.imshow(name,img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

cv_show('img1',img1)
cv_show('img2',img2)

sift = cv2.xfeatures2d.SIFT_create()
kp1, des1 = sift.detectAndCompute(img1,None)
kp2, des2 = sift.detectAndCompute(img2,None)

# crossCheck 表示两个特征点要互相匹配,例如 A 中的第 i 个特征点与 B 中第 j 个特征点最近的,并且 B 中第 j 个特征点到 A 中的第 i 个特征点也是最近的。      
# 将两幅图像的特征点、特征向量算出来,用欧氏距离去比较特征向量相似性,一般情况下默认用的是归一化后的欧式距离去做,为了使得结果更均衡些。
# 如果不用 sift 特征计算方法去做,而是用其他特征计算方法需要考虑不同的匹配方式。
bf = cv2.BFMatcher(crossCheck = True)  # cv2.BFMatcher 蛮力匹配缩写

# 1对1匹配
matches = bf.match(des1, des2)
matches = sorted(matches, key=lambda x: x.distance)
img3 = cv2.drawMatches(img1, kp1, img2, kp2, matches[:10], None, flags=2)  # 画前十个点          
cv_show('img3',img3)
  • 执行结果
点击查看详情

标签:匹配,show,特征,cv2,matches,img2,img1
From: https://www.cnblogs.com/dogleftover/p/18044204

相关文章

  • Python 机器学习 决策树 文本特征的处理
    ​Python机器学习中,决策树是一种常用的分类和回归模型。决策树可以处理数值型特征和类别型特征。对于文本特征,决策树通常使用词袋模型(BOW)或TF-IDF模型进行处理。在处理文本特征时,决策树(和机器学习算法通常)不能直接处理原始文本。文本必须首先转换成算法能理解的数值形式。......
  • vim括号匹配等跳转技巧
    %跳转到相配对的括号gD跳转到局部变量的定义处''跳转到光标上次停靠的地方,是两个',而不是一个"mx设置书签,x只能是a-z的26个字母,"`x"跳转到书签处>增加缩进,"x>"表示增加以下x行的缩进<减少缩进,"x<"表示减少以下x行的缩进{跳到上一段的开头}跳到下一段的的......
  • Rust的ToOwned特征:泛型版的Clone
    std::borrow::ToOwned是Rust标准库中的一个特征,用于从借用的数据中创建一个具有所有权的副本。它的作用和Clone是一样的,但是相比Clone,它支持泛型;也就是说我们可以将一个类型T“Clone”为另一个类型U。这对处理一些特殊的类型来说很有用。ToOwned的签名ToOwned提供了两个方法,其中......
  • 特征方程法解通项公式
    本质是母函数的推导形式。不是很会,可能会了母函数之后回来补坑。先来写一个例子。我们有递推式\(a_n=a_{n-1}+a_{n-2}\)。我们仿照这个递推式写出一个方程\(x^2=x+1\)。解得\(x_1=\frac{1+\sqrt5}{2}\),\(x2=\frac{1-\sqrt5}{2}\)。于是得\(a_n=yx_1^n+zx_2^n=y(\frac{1+......
  • Rust的Deref特征:让智能指针“透明”的关键
    除了上篇文章中介绍过的Borrow和AsRef外,Rust中还有一个很常见的和引用相关的特征:Deref。不过,和Borrow、AsRef两个特征不同,Deref其实是用于重载解引用运算符(也就是*)的特征;在为某个类实现了Deref特征后,对它使用*运算就会调用特征中重载的方法。这篇文章不仅将介绍Deref特性,还将探......
  • 【学习笔记】KMP算法(字符串匹配优化算法)
    KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt提出的,因此人们称它为克努特—莫里斯—普拉特操作(简称KMP算法)。KMP算法的作用是,在一个长字符串内匹配一个短字符串(判断str1.contains(str2))时,减少匹配的次数,提高匹配效率。 必要概念:最长公共前后缀字符串......
  • Windows 操作系统的特征
    考虑到大多数读者使用的都是Windows操作系统,这里我们就以Windows为例,来详细讲解操作系统的具体功能。Windows操作系统的主要特征如下所示。(1)32位操作系统(也有64位版本)(2)通过API函数集来提供系统调用(3)提供采用了图形用户界面的用户界面(4)通过WYSIWYG实现打印输出(5)提......
  • Python 机器学习 决策树 数值型特征的处理
    ​ Python机器学习中,特征提取是将原始数据转换为能够被模型有效利用的格式的过程。对于决策树模型而言,特征提取尤其重要,因为好的特征可以显著提升模型的预测性能。在实际应用中,需要根据具体情况选择合适的特征提取方法。数值型特征是机器学习中常见的一种特征类型,它指的是可以......
  • 【机器学习算法】KNN鸢尾花种类预测案例和特征预处理。全md文档笔记(已分享,附代码)
    本系列文章md笔记(已分享)主要讨论机器学习算法相关知识。机器学习算法文章笔记以算法、案例为驱动的学习,伴随浅显易懂的数学知识,让大家掌握机器学习常见算法原理,应用Scikit-learn实现机器学习算法的应用,结合场景解决实际问题。包括K-近邻算法,线性回归,逻辑回归,决策树算法,集成学习,聚......
  • 实名认证Api接口:验证身份证号码和姓名是否匹配成功
    实名认证是在互联网信息时代中,为了保障身份信息的正确性而进行的一种核验手段。实名认证可以有效防止虚假身份的使用,维护公共利益和个人权益的安全。在很多互联网应用中,实名认证已经成为了一个非常重要的环节。在开发过程中,我们经常需要通过API接口来实现实名认证功能。其中,验证......