- 特征點檢測
- 源碼
- 應用
前言
圖像拼接|——OpenCV3.4 stitching子產品分析(一)特征點檢測
參考opencv_趙春江的專欄_zhaocj-CSDN部落格
特征點檢測
OpenCV3.4中實作了surf、orb、sift等特征檢測算法,預設的是surf。特征檢測算法的實作主要包含在 "opencv2/stitching/detail/matchers.hpp" 中。
源碼
首先定義了一個ImageFeatures結構體用于存放特征資訊,包括圖檔序号、尺寸、特征點資訊及描述子矩陣:
定義FeaturesFinder基類,其中的成員函數find()是用來尋找特征資訊:
FeaturesFinder基類派生出SurfFeaturesFinder、SiftFeaturesFinder、OrbFeaturesFinder等派生類。SurfFeaturesFinder派生類定義:
class CV_EXPORTS SurfFeaturesFinder :
SiftFeaturesFinder派生類定義:
class CV_EXPORTS SiftFeaturesFinder :
OrbFeaturesFinder派生類定義:
class CV_EXPORTS OrbFeaturesFinder :
關于各個特征檢測算法的具體實作,就不具體展開了,一般隻要知道怎樣調用進階API即可。
應用
#include
運作結果:

<<< 左右滑動見更多 >>> Number of surf keypoints: 1403 Number of orb keypoints: 1346 Number of sift keypoints: 1287
主觀視覺上還是SIFT更穩健一些,不過stitching預設使用的是surf。