這篇文章主要為大家展示了“C++ OpenCV特征提取之如何實現SURF特征檢測”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“C++ OpenCV特征提取之如何實現SURF特征檢測”這篇文章吧。
創(chuàng)新互聯(lián)是一家專注于網站設計、成都做網站和川西大數據中心的網絡公司,有著豐富的建站經驗和案例。
SURF特征基本介紹
SURF(Speeded Up Robust Features)特征關鍵特性:
特征檢測
尺度空間
選擇不變性
特征向量
SURF算法工作原理
選擇圖像中的POI(Points of interest) Hessian Matrix
在不同的尺度空間發(fā)現關鍵點,非最大信號壓制
發(fā)現特征點方法、旋轉不變性要求
生成特征向量
SURF構造函數介紹
C++: SURF::SURF(
double hessianThreshold, --閾值檢測器使用Hessian的關鍵點,默認值在
300-500之間
int nOctaves=4, -- 4表示在四個尺度空間
int nOctaveLayers=2, -- 表示每個尺度的層數
bool extended=false,
bool upright=false --表示計算選擇不變性,不計算的速度更快
)
代碼演示
我們再新建一個項目名為opencv--surf,按照配置屬性(VS2017配置OpenCV通用屬性),然后在源文件寫入#include和main方法
上面紅框這里我們在讀取圖片的時候加上了一個參數,IMREAD_GRAYSCALE,這樣我們現在讀取的圖片直接進來就是灰度圖了,不用再用cvtcolor進行轉換了。
開始進行SURF檢測
因為我們要用到cv::xfeatures2d::SURF這個類,所以首先要在頭文里要引用xfeatures2d.hpp的頭文件
上面我們定義的閾值為400,然后我們看一下運行的效果
然后我們把原來的minHessian參數值改為100試試
再看一下運行的效果
仔細對比一下,比原來定義的值400要多了一些關鍵點,這里就可以說明我們的閾值調的越高,顯示的出來的關鍵點就越少。
我們還可以再試試SURF的構造函數里面加上不同的參數的改變看看效果
上面可以看到在SURF::create里面,把幾個默認的參數都進行的賦值和修改,運行的效果為
以上是“C++ OpenCV特征提取之如何實現SURF特征檢測”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
分享文章:C++OpenCV特征提取之如何實現SURF特征檢測
網頁URL:http://www.rwnh.cn/article10/gcgpdo.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站設計、Google、品牌網站建設、網站營銷、響應式網站、網站維護
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)