亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

opencv3/C++ 實現SURF特征檢測

 更新時間:2019年12月12日 08:33:00   作者:阿卡蒂奧  
今天小編就為大家分享一篇opencv3/C++ 實現SURF特征檢測,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

SURF即Speeded Up Robust Features加速魯棒特征;

SURF可以用于對象定位和識別、人臉識別、3D重建、對象跟蹤和提取興趣點等。

工作原理:

1、選擇圖像中POI(Points of Interest) Hessian Matrix;

2、在不同的尺度空間發(fā)現關鍵點,非最大信號壓制;

3、發(fā)現特征點方法、旋轉不變性要求;

4、生成特征向量;

類SURF中成員函數create()參數說明:

static Ptr<SURF> create(
double hessianThreshold=100,//SURF中使用的hessian關鍵點檢測器的閾值
int nOctaves = 4, //關鍵點檢測器將使用的金字塔組數量
int nOctaveLayers = 3,//高斯金字塔每個組內圖像的層數
bool extended = false, //擴展描述符標志(true使用擴展的128個元素的描述符,false使用64個元素的描述符)
bool upright = false//旋轉的特征標志(true不計算方向,false計算方向)
);

函數detect()用來檢測圖像或圖像集中的關鍵點。

基類Feature2D中成員函數detect()參數說明:

void detect( 
InputArray image,//圖像
CV_OUT std::vector<KeyPoint>& keypoints,//檢測到的關鍵點,(在圖像集中關鍵點[i]是在圖像[i]中檢測到的一組關鍵點)
InputArray mask=noArray() //指定在哪里尋找關鍵點的掩碼(必須是在感興趣區(qū)域中具有非零值的8位整數矩陣)
);

函數drawKeypoints()的參數說明:

void drawKeypoints( 
InputArray image, //源圖像
const std::vector<KeyPoint>& keypoints, //來自源圖像的關鍵點
InputOutputArray outImage,//輸出圖像
const Scalar& color=Scalar::all(-1), //關鍵點的顏色
int flags=DrawMatchesFlags::DEFAULT //設置繪圖功能的標志
);

函數drawKeypoints()用來繪制關鍵點。

SURF特征檢測示例:

#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特征檢測
 Ptr<SURF> detector = SURF::create(minHessian);
 std::vector<KeyPoint> keypoints;
 detector->detect(src, keypoints, Mat());
 // 繪制關鍵點
 drawKeypoints(src, keypoints, dst, Scalar::all(-1), DrawMatchesFlags::DEFAULT);
 imshow("output", dst);
}

以上這篇opencv3/C++ 實現SURF特征檢測就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • c語言 字符串的拼接和分割實例

    c語言 字符串的拼接和分割實例

    今天小編就為大家分享一篇c語言 字符串的拼接和分割實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • C語言實現推箱子功能匯總

    C語言實現推箱子功能匯總

    這篇文章主要為大家詳細介紹了C語言實現推箱子功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • c語言實現輸入一組數自動從大到小排列的實例代碼

    c語言實現輸入一組數自動從大到小排列的實例代碼

    下面小編就為大家?guī)硪黄猚語言實現輸入一組數自動從大到小排列的實例代碼。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • c語言讀取csv文件和c++讀取csv文件示例分享

    c語言讀取csv文件和c++讀取csv文件示例分享

    這篇文章主要介紹了c語言讀取csv文件和c++讀取csv文件示例,需要的朋友可以參考下
    2014-03-03
  • C++實現LeetCode(136.單獨的數字)

    C++實現LeetCode(136.單獨的數字)

    這篇文章主要介紹了C++實現LeetCode(136.單獨的數字),本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-07-07
  • C語言中常見的六種動態(tài)內存錯誤總結

    C語言中常見的六種動態(tài)內存錯誤總結

    學習過C語言中的動態(tài)內存函數,例如【malloc】、【calloc】、【realloc】、【free】,那它們在使用的過程中會碰到哪些問題呢,本本文我們一起來探討下,感興趣的朋友跟著小編一起來看看吧
    2023-11-11
  • STL常用容器詳細解析

    STL常用容器詳細解析

    這里我們不涉及容器的基本操作之類,只是要討論一下各個容器其各自的特點STL中的常用容器包括:順序性容器(vector、deque、list)、關聯容器(map、set)、容器適配器(queue、stac)
    2013-09-09
  • cocos2dx實現刮獎效果

    cocos2dx實現刮獎效果

    這篇文章主要為大家詳細介紹了cocos2dx實現刮獎效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • C++實現顯示MP3文件信息的方法

    C++實現顯示MP3文件信息的方法

    這篇文章主要介紹了C++實現顯示MP3文件信息的方法,可實現顯示如作者、專輯等(libZPlay)信息的功能,需要的朋友可以參考下
    2015-06-06
  • C/C++函數參數聲明解析int?fun()?與?int?fun(void)?的區(qū)別講解

    C/C++函數參數聲明解析int?fun()?與?int?fun(void)?的區(qū)別講解

    C++中int fun()和int fun(void)的區(qū)別在于函數參數的聲明方式,前者默認允許任意參數,而后者表示沒有參數,通過清晰的實例源代碼,詳細解釋了它們在函數聲明和調用中的不同之處,這篇文章介紹了C/C++函數參數聲明int?fun()與int?fun(void)的差異,需要的朋友可以參考下
    2024-01-01

最新評論