opencv 特征匹配 使用特征匹配和单应性查找对象

本文介绍了如何使用OpenCV的calib3d模块和SIFT特征检测器进行特征匹配,以在图像中查找对象。通过找到关键点、匹配描述符并应用RANSAC去除错误匹配,计算单应性矩阵实现对象的精确定位。最后,通过绘制匹配点展示了匹配效果。
摘要由CSDN通过智能技术生成

opencv 特征匹配
使用特征匹配和单应性查找对象

在一张杂乱的图像中找到了一个对象(的某些部分)的位置。这些信息足以帮助我们在目标图像中准确的找到(查询图像)对象。为了达到这个目的我们可以使用 calib3d 模块中的
cv2.findHomography()函数。如果将这两幅图像中的特征点集传给这个函数,他就会找到这个对象的透视图变换。然后我们就可以使用函数 cv2.perspectiveTransform() 找到这个对象了。至少要 4 个正确的点才能找到这种变换。

我们已经知道在匹配过程可能会有一些错误,而这些错误会影响最终结果。为了解决这个问题,算法使用 RANSAC 和 LEAST_MEDIAN(可以通过参数来设定)。所以好的匹配提供的正确的估计被称为 inliers,剩下的被称为outliers。cv2.findHomography() 返回一个掩模,这个掩模确定了 inlier 和outlier 点。

和通常一样我们先在图像中来找到 SIFT 特征点,然后再使用比值测试找到最佳匹配。

“”"
单应性匹配:
两幅图像中的一幅 出现投影畸变的时候,他们还能彼此匹配
“”"
import cv2
import numpy as np
#最小匹配数量设为10个, 大于这个数量从中筛选出10个最好的

MIN_MATCH_COUNT
= 10
#读入两幅图片 图片中有相同部分
img1= cv2.imread(“10.png”,cv2.IMREAD_GRAYSCALE)
img2= cv2.imread(“11.png”,cv2.IMREAD_GRAYSCALE)
#获取sift特征检测器
sift= cv2.xfeatures2d.SIFT_create()

#检测关

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值