OpenCV-Python Feature2D 特征点检测(含SIFT/SURF/ORB/KAZE/FAST/BRISK/AKAZE)

对于OpenCV-Python,OpenCV2.x和OpenCV3.x的函数使用方式有很大不同。网上很多教程都还是基于OpenCV2.x,此版本已经逐渐被弃用。

本教程针对特征点检测,分析OpenCV2.x和OpenCV3.x的不同之后,并重点介绍OpenCV3.x-Python的特征点检测。


Open2.x-Python 特征点检测方法

对于OpenCV2.x-Python,特征点检测及显示方法如下:
# OpenCV2.x-Python
function = cv2.Function_Name()
keypoints = function.detect(img, None)
img2 = cv2.drawKeyPoints(img, keypoints, color=(0,255,0))

其中Function_Name就是特征检测方法的函数名,如BRISK、FastFeatureDetector等。

比如,在OpenCV2.x-Python,想使用Fast来检测特征点,示例如下:

# OpenCV2.x-Python
fast = cv2.FastFeatureDetector()
keypoints = fast.detect(img, None)
img2 = cv2.drawKeypoints(img, keypoints, color=(255,0,0))


Open3.x-Python 特征点检测方法

对于OpenCV3.x-Python,特征点检测及显示方法如下:

# OpenCV3.x-Python
# 注意有_create()后缀
function = cv2.Function_Name_create()
keypoints = function.detect(img, None)
# 注意显示之前要先将img2初始化
img2 = img.copy()
img2 = cv2.drawKeyPoints(img, keypoints, color=(0,255,0))

其中Function_Name就是特征检测方法的函数名,如BRISK、FastFeatureDetector等。

[注意1]:对于OpenCV3.x-Python,还要在Function_Name后加上_create后缀。其实这一点在opencv_doc中具体的函数python使用方法中已经注明了。

[注意2]:对于OpenCV3.x-Python,若要显示检测的特征点,需要初始化img2,才能正常显示。这里可以先使用img2 = img.copy()完成拷贝初始化。


下面就重点介绍OpenCV3.x-Python中的各种特征点检测方法的使用示例。

测试图像为标准的lena.png

  • 16
    点赞
  • 142
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值