資源簡介
SURF實現特征點的檢測。描述及匹配。比較詳細,利于學習
代碼片段和文件信息
//--------------------------------------【程序說明】-------------------------------------------
// 程序說明:《OpenCV3編程入門》OpenCV2版書本配套示例程序89
// 程序描述:SURF特征點檢測示例
// 開發測試所用操作系統:?Windows?7?64bit
// 開發測試所用IDE版本:Visual?Studio?2010
// 開發測試所用OpenCV版本: 2.4.9
// 2014年06月?Created?by?@淺墨_毛星云
// 2014年11月?Revised?by?@淺墨_毛星云
//------------------------------------------------------------------------------------------------
//---------------------------------【頭文件、命名空間包含部分】----------------------------
// 描述:包含程序所使用的頭文件和命名空間
//------------------------------------------------------------------------------------------------
#include?“opencv2/core/core.hpp“
#include?“opencv2/features2d/features2d.hpp“
#include?“opencv2/highgui/highgui.hpp“
#include?“opencv2/nonfree/nonfree.hpp“
#include?
using?namespace?cv;
//-----------------------------------【全局函數聲明部分】--------------------------------------
//??????????描述:全局函數的聲明
//-----------------------------------------------------------------------------------------------
static?void?ShowHelpText(?);//輸出幫助文字
//-----------------------------------【main(?)函數】--------------------------------------------
//???描述:控制臺應用程序的入口函數,我們的程序從這里開始執行
//-----------------------------------------------------------------------------------------------
int?main(?int?argc?char**?argv?)
{
//【0】改變console字體顏色????
system(“color?2F“);????
//【0】顯示幫助文字??
ShowHelpText(?);??
//【1】載入源圖片并顯示
Mat?srcImage1?=?imread(“1.jpg“?1?);
Mat?srcImage2?=?imread(“2.jpg“?1?);
if(?!srcImage1.data?||?!srcImage2.data?)//檢測是否讀取成功
{?printf(“讀取圖片錯誤,請確定目錄下是否有imread函數指定名稱的圖片存在~!?\n“);?return?false;?}?
imshow(“原始圖1“srcImage1);
imshow(“原始圖2“srcImage2);
//【2】定義需要用到的變量和類
int?minHessian?=?400;//定義SURF中的hessian閾值特征點檢測算子
SurfFeatureDetector?detector(?minHessian?);//定義一個SurfFeatureDetector(SURF)?特征檢測類對象
std::vector?keypoints_1?keypoints_2;//vector模板類是能夠存放任意類型的動態數組,能夠增加和壓縮數據
//【3】調用detect函數檢測出SURF特征關鍵點,保存在vector容器中
detector.detect(?srcImage1?keypoints_1?);
detector.detect(?srcImage2?keypoints_2?);
//【4】繪制特征關鍵點.
Mat?img_keypoints_1;?Mat?img_keypoints_2;
drawKeypoints(?srcImage1?keypoints_1?img_keypoints_1?Scalar::all(-1)?DrawMatchesFlags::DEFAULT?);
drawKeypoints(?srcImage2?keypoints_2?img_keypoints_2?Scalar::all(-1)?DrawMatchesFlags::DEFAULT?);
//【5】顯示效果圖
imshow(“特征點檢測效果圖1“?img_keypoints_1?);
imshow(“特征點檢測效果圖2“?img_keypoints_2?);
waitKey(0);
return?0;
}
//-----------------------------------【ShowHelpText(?)函數】----------------------------------
//??????????描述:輸出一些幫助信息
//----------------------------------------------------------------------------------------------
void?ShowHelpText()
{?
//輸出歡迎信息和OpenCV版本
printf(“\n\n\t\t\t非常感謝購買《OpenCV3編程入門》一書!\n“);
printf(“\n\n\t\t\t此為本書OpenCV2版的第89個配套示例程序\n“);
printf(“\n\n\t\t\t???當前使用的OpenCV版本為:“?CV_VERSION?);
printf(“\n\n??----------------------------------------------------------------------------\n“);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-07-23?10:08??新建文件夾\
?????目錄???????????0??2016-07-23?10:07??新建文件夾\【89】SURF特征點檢測\
?????目錄???????????0??2016-07-23?10:07??新建文件夾\【89】SURF特征點檢測\89_SURF特征點檢測\
?????文件???????68584??2014-11-10?16:23??新建文件夾\【89】SURF特征點檢測\89_SURF特征點檢測\1.jpg
?????文件???????60922??2014-11-10?16:23??新建文件夾\【89】SURF特征點檢測\89_SURF特征點檢測\2.jpg
?????文件????????3952??2014-11-26?23:01??新建文件夾\【89】SURF特征點檢測\89_SURF特征點檢測\89_SURF特征點檢測.vcxproj
?????文件?????????960??2014-11-26?23:01??新建文件夾\【89】SURF特征點檢測\89_SURF特征點檢測\89_SURF特征點檢測.vcxproj.filters
?????文件?????????143??2014-11-26?22:54??新建文件夾\【89】SURF特征點檢測\89_SURF特征點檢測\89_SURF特征點檢測.vcxproj.user
?????文件????????3598??2016-03-18?16:27??新建文件夾\【89】SURF特征點檢測\89_SURF特征點檢測\89_SurfFeatureDetector.cpp
?????目錄???????????0??2016-07-23?10:07??新建文件夾\【89】SURF特征點檢測\89_SURF特征點檢測\Debug\
?????文件???????????2??2016-04-16?16:24??新建文件夾\【89】SURF特征點檢測\89_SURF特征點檢測\Debug\89_SURF特征點檢測.exe.em
?????文件??????????68??2016-04-16?16:24??新建文件夾\【89】SURF特征點檢測\89_SURF特征點檢測\Debug\89_SURF特征點檢測.exe.em
?????文件?????????223??2016-04-16?16:24??新建文件夾\【89】SURF特征點檢測\89_SURF特征點檢測\Debug\89_SURF特征點檢測.lastbuildstate
?????文件????????3960??2016-04-16?16:24??新建文件夾\【89】SURF特征點檢測\89_SURF特征點檢測\Debug\89_SURF特征點檢測.log
?????文件???????????0??2016-04-16?16:24??新建文件夾\【89】SURF特征點檢測\89_SURF特征點檢測\Debug\89_SURF特征點檢測.unsuccessfulbuild
?????文件???????????0??2016-04-16?16:24??新建文件夾\【89】SURF特征點檢測\89_SURF特征點檢測\Debug\89_SURF特征點檢測.write.1.tlog
?????文件?????????214??2016-04-16?16:24??新建文件夾\【89】SURF特征點檢測\89_SURF特征點檢測\Debug\89_SURF特征點檢測_manifest.rc
?????文件??????138951??2016-04-16?16:24??新建文件夾\【89】SURF特征點檢測\89_SURF特征點檢測\Debug\89_SurfFeatureDetector.obj
?????文件???????15198??2016-04-16?16:24??新建文件夾\【89】SURF特征點檢測\89_SURF特征點檢測\Debug\CL.read.1.tlog
?????文件?????????840??2016-04-16?16:24??新建文件夾\【89】SURF特征點檢測\89_SURF特征點檢測\Debug\CL.write.1.tlog
?????文件????????1010??2016-04-16?16:24??新建文件夾\【89】SURF特征點檢測\89_SURF特征點檢測\Debug\cl.command.1.tlog
?????文件???????????2??2016-04-16?16:24??新建文件夾\【89】SURF特征點檢測\89_SURF特征點檢測\Debug\li
?????文件???????????2??2016-04-16?16:24??新建文件夾\【89】SURF特征點檢測\89_SURF特征點檢測\Debug\li
?????文件???????????2??2016-04-16?16:24??新建文件夾\【89】SURF特征點檢測\89_SURF特征點檢測\Debug\li
?????文件?????????870??2016-04-16?16:24??新建文件夾\【89】SURF特征點檢測\89_SURF特征點檢測\Debug\rc.command.1.tlog
?????文件?????????598??2016-04-16?16:24??新建文件夾\【89】SURF特征點檢測\89_SURF特征點檢測\Debug\rc.read.1.tlog
?????文件?????????606??2016-04-16?16:24??新建文件夾\【89】SURF特征點檢測\89_SURF特征點檢測\Debug\rc.write.1.tlog
?????文件??????363520??2016-04-16?16:24??新建文件夾\【89】SURF特征點檢測\89_SURF特征點檢測\Debug\vc100.idb
?????文件??????552960??2016-04-16?16:24??新建文件夾\【89】SURF特征點檢測\89_SURF特征點檢測\Debug\vc100.pdb
?????文件????11423744??2016-04-16?16:28??新建文件夾\【89】SURF特征點檢測\89_SURF特征點檢測.sdf
?????文件?????????933??2014-11-26?22:54??新建文件夾\【89】SURF特征點檢測\89_SURF特征點檢測.sln
............此處省略58個文件信息
評論
共有 條評論