本文主要是介绍图像特征检测笔记(特征检测基本概念,Harris,Shi-Tomasi,SIFT,SURF,ORB,暴力特征匹配,FLANN特征匹配)),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 前言
- 一、特征检测基本概念
- 二、哈里斯角点检测(Harris)
- 1.Harris角点基本原理
- 2.Harris角点检测API
- 3.Harris角点检测代码实例:
- 三、Shi-Tomasi角点检测(Shi-Tomasi)
- 1.Shi-Tomasi角点基本原理
- 2.Shi-Tomasi角点检测API
- 3.Shi-Tomasi角点检测代码实例:
- 四、SIFT关键点检测(scale-invariant feature transform)
- 1.SIFT出现的原因
- 2.使用SIFT的步骤
- 3.SIFT检测代码实例:
- 五、计算SIFT描述子(scale-invariant feature transform)
- 1.关键点和描述子
- 2.计算描述子
- 3.计算SIFT描述子代码实例:
- 六、SURF特征检测(speeded-up robust features)
- 1.SURF的优点
- 2.使用SURF的步骤
- 3.SURF代码实例:
- 七、ORB特征检测(oriented fast and rotated brief)
- 1.ORB优势
- 2.使用ORB的步骤
- 3.ORB代码实例:
- 八、暴力特征匹配
- 1.特征匹配方法
- 2.暴力特征匹配原理
- 3.OpenCV特征匹配步骤
- 4.暴力特征匹配代码实例:
- 八、FLANN特征匹配
- 1.FLANN优缺点
- 3.FLANN特征匹配步骤
- 4.暴力特征匹配代码实例:
- 总结
前言
基于Python与OpenCV的图像特征匹配学习笔记,供大家参考
一、特征检测基本概念
特征中最重要的是角点,主要包括:
1.灰度梯度的最大值对应的像素
2.两条线的交点
3.极值点(一阶导最大值,二阶导等于0)
二、哈里斯角点检测(Harris)
1.Harris角点基本原理
光滑地区,无论向哪里移动,衡量系数不变;
边缘地区,垂直边缘移动,衡量系数变化剧烈;
在交点处,无论往哪个方向移动,衡量系统都变化剧烈。
2.Harris角点检测API
cornerHarris(img,blockSize,ksize,k)
img:输入图片
blockSize:窗口大小,窗口越大,敏感度越高
ksize:Solel卷积核
k:权重系数,经验值,一般0.02-0.04之间
3.Harris角点检测代码实例:
import cv2blockSize = 2
ksize = 3
k = 0.04img = cv2.imread('map1.png')
# 灰度化
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# Harris角点检测
dst = cv2.cornerHarris(gray, blockSize, ksize, k)
# 检测结果展示,红色
img[dst > 0.01 *dst.max()] = [0,0,255]cv2.imshow('harris', img)
cv2.waitKey(0)
三、Shi-Tomasi角点检测(Shi-Tomasi)
1.Shi-Tomasi角点基本原理
Shi-Tomasi是Harris角点检测的改进,不需要设置K值
Harris角点检测的稳定性与K值有关,而K是经验值,不好设定最佳值
2.Shi-Tomasi角点检测API
goodFeaturesToTrack(img,maxCorners,...)
img:输入图片
maxCorners:角点的最大数,值为0表示无限制
qualityLevel:小于1.0的正数,一般在0.01-0.1之间
minDistance:角之间最小欧式距离,忽略小于此距离的点
mask:感兴趣的区域
blockSize:窗口大小,窗口越大,敏感度越高
useHarrisDetector:是否使用Harris算法,默认false
k:默认0.04之间
3.Shi-Tomasi角点检测代码实例:
import cv2
import numpy as npmaxCorners = 1000
ql = 0.01
minDistance = 10img = cv2.imread('map1.png')gray = cv2
这篇关于图像特征检测笔记(特征检测基本概念,Harris,Shi-Tomasi,SIFT,SURF,ORB,暴力特征匹配,FLANN特征匹配))的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!