OpenCV4特征匹配

目录

一.特征检测的基本概念

OpenCV特征的场景

  • 1.图像搜索,如以图搜图
  • 2.拼图游戏
  • 3.图像拼接,将两张有关联的图拼接到一起

特征点匹配 就是在不同的图像中寻找同一个物体的同一个特征点。因为每个特征点都具有标志着唯一身份和特点的描述子,因此特征点匹配其实就是在两个图像中寻找具有相似描述子的两个特征点。根据描述子特点的不同,寻找两个相似描述子的方法也不尽相同,总体上可以总结为两类:

第一类是计算两个描述子之间的欧氏距离,这种匹配方式的特征点有SIFT特征点、SURF特征点等;

第二类是计算两个描述子之间的汉明距离,这种匹配方式的特征点有ORB特征点、BRJSK特征点等。

角点

  • 1.在特征中最重要的是角点
  • 2.灰度梯度的最大值对应的像素
  • 3.两条线的交点

二.Harris角点检测

Harris角点检测API

python 复制代码
cornerHarris(img, dst, blockSize, kernel_size, k)
- blockSize: 检测窗口大小
- kernel_size: Sobel的卷积核
- k: 权重系数,经验值,一般取0.02~0.04之间

三.Shi-Tomasi角点检测

  • 1.Shi-Tomasi是Harris角点检测的改进
  • 2.Harris角点检测算法的稳定性和k有关,而k是一个经验值

四.SIFT关键点检测

SIFT(Scale-Invariant Feature Transform)

SIFT出现的原因

虽然Harris角点具有旋转不变的特征,但缩放后,原来的角点有可能就检测不到了

使用SIFT的步骤

  • 1.创建SIFT对象
  • 2.进行检测
  • 3.绘制关键点,drawKeypoints

五.SURF特征检测(属于opencv_contrib)

SURF(Speeded-Up Robust Features)

SIFT最大的问题是速度慢,因此才有了SURF

六.ORB特征检测

ORB(Oriented FAST and Rotated BRIEF)

ORB可以做到实时监测

七.特征匹配方法

模板匹配 :模板匹配是一种最原始、最基本的模式识别方法,研究某一特定对象物的图案位于图像的什么地方,进而识别对象物,这就是一个匹配问题。它是图像处理中最基本、最常用的匹配方法。模板匹配具有自身的局限性,主要表现在它只能进行平行移动,若原图像中的匹配目标发生旋转或大小变化,该算法无效
特征匹配 :所谓特征匹配FBM(Feature-Based Matching) ,就是指将从影像中提取的特征作为共轭实体,而将所提特征属性或描述参数(实际上是特征的特征,也可以认为是影像的特征)作为匹配实体,通过计算匹配实体之间的相似性测度以实现共轭实体配准的影像匹配方法。在匹配目标发生旋转或大小变化时,该算法依旧有效

  • 1.BF(Brute-Force):暴力特征匹配方法
  • 2.FLANN:最快邻近区特征匹配方法

类似于VisionMaster中的高精度匹配和快速匹配

暴力特征匹配原理

它使用第一组中的每个特征的描述子,与第二组中的所有特征描述子进行匹配,计算它们之间的差距,然后将最接近的一个匹配返回

OpenCV特征匹配步骤

  • 1.创建匹配器:BFMatcher(normType, crossCheck)
  • 2.进行特征匹配:bf.match(des1, des2)
  • 3.绘制匹配点:drawMatches()

八.FLANN特征匹配

FLANN优缺点

  • 1.在进行批量特征匹配时,FLANN速度更快
  • 2.由于它使用的是邻近近似值,所以精度较差

流程梳理

相关推荐
人生游戏牛马NPC1号2 小时前
学习 Android (二十) 学习 OpenCV (五)
android·opencv·学习
notfindjob2 小时前
Opencv C++ 教程-人脸识别
c++·opencv·计算机视觉
极客智造2 小时前
OpenCV C++ 核心:Mat 与像素操作全解析
c++·人工智能·opencv
劳尔的狙击镜2 小时前
CT影像寻找皮肤轮廓预处理
python·opencv·findcontours·ct·皮肤轮廓·皮肤表皮建模·医学影像处理
极客智造2 小时前
OpenCV C++ 色彩空间详解:转换、应用与 LUT 技术
c++·人工智能·opencv
湫兮之风2 小时前
OpenCV: cv::warpAffine()逆仿射变换详解
人工智能·opencv·计算机视觉
那雨倾城6 小时前
PiscCode轨迹跟踪Mediapipe + OpenCV进阶:速度估算
图像处理·人工智能·python·opencv·计算机视觉
闻道且行之6 小时前
嵌入式|Linux中打开视频流的两种方式V4l2和opencv
linux·笔记·opencv·嵌入式
山烛21 小时前
OpenCV 模板匹配
人工智能·python·opencv·计算机视觉·目标跟踪·模板匹配
LeonDL1681 天前
【通用视觉框架】基于Python+OpenCV+PyQt5开发的视觉框架软件,全套源码,开箱即用
图像处理·人工智能·python·opencv·pyqt5·通用视觉框架软件·机器视觉软件框架