opencv特征点提取
时间: 2023-08-25 10:07:34 浏览: 45
OpenCV中提供了许多种常用的特征点检测算法,包括:
1. Harris角点检测器(cv::cornerHarris)
2. Shi-Tomasi角点检测器(cv::goodFeaturesToTrack)
3. SIFT特征点检测器(cv::xfeatures2d::SIFT)
4. SURF特征点检测器(cv::xfeatures2d::SURF)
5. FAST特征点检测器(cv::FastFeatureDetector)
6. ORB特征点检测器(cv::ORB)
其中,Harris角点检测器和Shi-Tomasi角点检测器都是基于图像的局部灰度变化来检测角点的。SIFT和SURF是基于尺度空间的极值点来检测特征点的,ORB则是一种既能进行特征点检测又能进行描述的算法。
一般使用方法如下:
```python
import cv2 as cv
# 读入图像
img = cv.imread('test.jpg')
# 转为灰度图像
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
# 创建FAST特征点检测器对象
detector = cv.FastFeatureDetector_create()
# 检测特征点
kp = detector.detect(gray, None)
# 绘制特征点
img_kp = cv.drawKeypoints(img, kp, None, color=(0, 255, 0), flags=0)
# 显示结果
cv.imshow('Keypoints', img_kp)
cv.waitKey(0)
cv.destroyAllWindows()
```
在这个例子中,我们使用了FAST特征点检测器来检测图像中的特征点,并用绿色的圆圈将其标出来。