opencv3/C++ 實(shí)現(xiàn)SURF特征檢測(cè)
SURF即Speeded Up Robust Features加速魯棒特征;
SURF可以用于對(duì)象定位和識(shí)別、人臉識(shí)別、3D重建、對(duì)象跟蹤和提取興趣點(diǎn)等。
工作原理:
1、選擇圖像中POI(Points of Interest) Hessian Matrix;
2、在不同的尺度空間發(fā)現(xiàn)關(guān)鍵點(diǎn),非最大信號(hào)壓制;
3、發(fā)現(xiàn)特征點(diǎn)方法、旋轉(zhuǎn)不變性要求;
4、生成特征向量;

類(lèi)SURF中成員函數(shù)create()參數(shù)說(shuō)明:
static Ptr<SURF> create( double hessianThreshold=100,//SURF中使用的hessian關(guān)鍵點(diǎn)檢測(cè)器的閾值 int nOctaves = 4, //關(guān)鍵點(diǎn)檢測(cè)器將使用的金字塔組數(shù)量 int nOctaveLayers = 3,//高斯金字塔每個(gè)組內(nèi)圖像的層數(shù) bool extended = false, //擴(kuò)展描述符標(biāo)志(true使用擴(kuò)展的128個(gè)元素的描述符,false使用64個(gè)元素的描述符) bool upright = false//旋轉(zhuǎn)的特征標(biāo)志(true不計(jì)算方向,false計(jì)算方向) );
函數(shù)detect()用來(lái)檢測(cè)圖像或圖像集中的關(guān)鍵點(diǎn)。
基類(lèi)Feature2D中成員函數(shù)detect()參數(shù)說(shuō)明:
void detect( InputArray image,//圖像 CV_OUT std::vector<KeyPoint>& keypoints,//檢測(cè)到的關(guān)鍵點(diǎn),(在圖像集中關(guān)鍵點(diǎn)[i]是在圖像[i]中檢測(cè)到的一組關(guān)鍵點(diǎn)) InputArray mask=noArray() //指定在哪里尋找關(guān)鍵點(diǎn)的掩碼(必須是在感興趣區(qū)域中具有非零值的8位整數(shù)矩陣) );
函數(shù)drawKeypoints()的參數(shù)說(shuō)明:
void drawKeypoints( InputArray image, //源圖像 const std::vector<KeyPoint>& keypoints, //來(lái)自源圖像的關(guān)鍵點(diǎn) InputOutputArray outImage,//輸出圖像 const Scalar& color=Scalar::all(-1), //關(guān)鍵點(diǎn)的顏色 int flags=DrawMatchesFlags::DEFAULT //設(shè)置繪圖功能的標(biāo)志 );
函數(shù)drawKeypoints()用來(lái)繪制關(guān)鍵點(diǎn)。
SURF特征檢測(cè)示例:
#include<opencv2/opencv.hpp>
#include<opencv2/xfeatures2d.hpp>
using namespace cv;
using namespace cv::xfeatures2d;
Mat src;
int minHessian = 50;
void trackBar(int, void*);
int main()
{
src = imread("E:/image/image/bdb.jpg");
if (src.empty())
{
printf("can not load image \n");
return -1;
}
namedWindow("input", WINDOW_AUTOSIZE);
imshow("input", src);
namedWindow("output", WINDOW_AUTOSIZE);
createTrackbar("minHessian","output",&minHessian, 500, trackBar);
waitKey(0);
return 0;
}
void trackBar(int, void*)
{
Mat dst;
// SURF特征檢測(cè)
Ptr<SURF> detector = SURF::create(minHessian);
std::vector<KeyPoint> keypoints;
detector->detect(src, keypoints, Mat());
// 繪制關(guān)鍵點(diǎn)
drawKeypoints(src, keypoints, dst, Scalar::all(-1), DrawMatchesFlags::DEFAULT);
imshow("output", dst);
}


以上這篇opencv3/C++ 實(shí)現(xiàn)SURF特征檢測(cè)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- C++?opencv圖像處理實(shí)現(xiàn)圖片邊緣檢測(cè)示例
- C++ OpenCV實(shí)戰(zhàn)之網(wǎng)孔檢測(cè)的實(shí)現(xiàn)
- C++ OpenCV實(shí)戰(zhàn)之標(biāo)記點(diǎn)檢測(cè)的實(shí)現(xiàn)
- C++?OpenCV實(shí)戰(zhàn)之車(chē)道檢測(cè)
- C++?OpenCV實(shí)現(xiàn)二維碼檢測(cè)功能
- C++ opencv霍夫圓檢測(cè)使用案例詳解
- opencv3/C++實(shí)現(xiàn)霍夫圓/直線檢測(cè)
- C++利用opencv實(shí)現(xiàn)人臉檢測(cè)
- C++利用Opencv實(shí)現(xiàn)多個(gè)圓形檢測(cè)
相關(guān)文章
C語(yǔ)言安全之?dāng)?shù)組長(zhǎng)度與指針實(shí)例解析
這篇文章主要介紹了C語(yǔ)言安全之?dāng)?shù)組長(zhǎng)度與指針,需要的朋友可以參考下2014-07-07
C++?ffmpeg實(shí)現(xiàn)將視頻幀轉(zhuǎn)換成jpg或png等圖片
有時(shí)播放實(shí)時(shí)流的時(shí)候有截圖的需求,需要將解碼出來(lái)的圖片保存本地或上傳服務(wù)器,這時(shí)就需要將avframe中的數(shù)據(jù)編碼成png、jpg等格式的圖片,我們使用ffmpeg的相關(guān)編碼器就可以實(shí)現(xiàn)功能,下面就來(lái)講講具體實(shí)現(xiàn)方法吧2023-03-03
如何調(diào)用C標(biāo)準(zhǔn)庫(kù)的exit函數(shù)詳解
這篇文章主要給大家介紹了關(guān)于如何調(diào)用C標(biāo)準(zhǔn)庫(kù)的exit函數(shù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
關(guān)于C++11的統(tǒng)一初始化語(yǔ)法示例詳解
C++之前的初始化語(yǔ)法很亂,有四種初始化方式,而且每種之前甚至不能相互轉(zhuǎn)換,但從C++11出現(xiàn)后就好了,所以這篇文章主要給大家介紹了關(guān)于C++11的統(tǒng)一初始化語(yǔ)法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2017-10-10
詳解C++中的函數(shù)調(diào)用和下標(biāo)以及成員訪問(wèn)運(yùn)算符的重載
這篇文章主要介紹了詳解C++中的函數(shù)調(diào)用和下標(biāo)以及成員訪問(wèn)運(yùn)算符,講到了這些二元運(yùn)算符使用的語(yǔ)法及重載,需要的朋友可以參考下2016-01-01
c++利用windows函數(shù)實(shí)現(xiàn)計(jì)時(shí)示例
這篇文章主要介紹了c++利用windows函數(shù)實(shí)現(xiàn)計(jì)時(shí)示例,需要的朋友可以參考下2014-05-05
C++實(shí)現(xiàn)寢室衛(wèi)生管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)寢室衛(wèi)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
C語(yǔ)言中常見(jiàn)的六種動(dòng)態(tài)內(nèi)存錯(cuò)誤總結(jié)
學(xué)習(xí)過(guò)C語(yǔ)言中的動(dòng)態(tài)內(nèi)存函數(shù),例如【malloc】、【calloc】、【realloc】、【free】,那它們?cè)谑褂玫倪^(guò)程中會(huì)碰到哪些問(wèn)題呢,本本文我們一起來(lái)探討下,感興趣的朋友跟著小編一起來(lái)看看吧2023-11-11

