資源簡介
該程序調用opencv庫函數實現的SIFT特征點提取及匹配,其中有兩組圖片以供測試。程序配置庫為opencv2.4.9+vs2013。

代碼片段和文件信息
//?sift.cpp?:?定義控制臺應用程序的入口點。
//
#include?“stdafx.h“
#include?
#include?
#include?
#include?“opencv2/nonfree/features2d.hpp“//sift?函數
using?namespace?std;
using?namespace?cv;
int?_tmain(int?argc?_TCHAR*?argv[])
{
CV_EXPORTS_W?bool?initModule_nonfree();//初始化模塊,使用SIFT或SURF時用到
PtrriptorMatcher>?siftMatcher?=?DescriptorMatcher::create(“BruteForce“);//創建特征匹配器暴力匹配(簡單匹配)
SiftFeatureDetector?siftDetector;//創建SIFT特征檢測器
//讀入圖像?
Mat?img1?=?imread(“p0.png“);
Mat?img2?=?imread(“p1.png“);
if?(img1.empty()?||?img2.empty())
printf(“picERROR“);
/*特征點檢測*/
vector?keypoints1?keypoints2;
siftDetector.detect(img1?keypoints1);
siftDetector.detect(img2?keypoints2);
cout?<“Number?of?detected?keypoints?img1:“?< <
/*在圖片上顯示特征點*/
Mat?imgkey1?imgkey2;
drawKeypoints(img1?keypoints1?imgkey1?Scalar::all(-1));
drawKeypoints(img2?keypoints2?imgkey2?Scalar::all(-1));
imshow(“box“?imgkey1);
imshow(“box_in_scene“?imgkey2);
/*特征向量提取*/
SiftDescriptorExtractor?siftExtractor;
Mat?descriptor1?descriptor2;
siftExtractor.compute(img1?keypoints1?descriptor1);
siftExtractor.compute(img2?keypoints2?descriptor2);
cout?<“Number?of?Descriptors1:“?<riptor1.rows?< cout?<“Number?of?Descriptors2:“?<riptor2.rows?< cout?<“Demension?of?sift?Descriptors:“?<riptor1.cols?<
/*特征點匹配*/
vector?matches;
siftMatcher->match(descriptor1?descriptor2?matches?Mat());
/*在圖片上顯示匹配結果*/
Mat?imgmatches;
drawMatches(img1
keypoints1
img2
keypoints2
matches
imgmatches
Scalar::all(-1)
Scalar::all(-1)
vector()
DrawMatchesFlags::NOT_DRAW_SINGLE_POINTS);
imshow(“Match?Results:“?imgmatches);
waitKey(0);
return?0;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????86528??2018-10-20?14:24??sift\Debug\sift.exe
?????文件?????531352??2018-10-20?14:24??sift\Debug\sift.ilk
?????文件????1469440??2018-10-20?14:24??sift\Debug\sift.pdb
?????文件????3080192??2018-10-20?14:23??sift\ipch\sift-ab158830\sift-4d88d322.ipch
?????文件?????903542??2018-10-20?14:17??sift\sift\a0.png
?????文件?????902056??2018-10-20?14:18??sift\sift\a1.png
?????文件???????1748??2018-10-20?14:24??sift\sift\Debug\sift.log
?????文件?????287344??2018-10-20?14:24??sift\sift\Debug\sift.obj
?????文件????1638400??2018-10-20?14:20??sift\sift\Debug\sift.pch
?????文件???????1270??2018-10-20?14:24??sift\sift\Debug\sift.tlog\cl.command.1.tlog
?????文件???????9378??2018-10-20?14:24??sift\sift\Debug\sift.tlog\CL.read.1.tlog
?????文件????????700??2018-10-20?14:24??sift\sift\Debug\sift.tlog\CL.write.1.tlog
?????文件???????2004??2018-10-20?14:24??sift\sift\Debug\sift.tlog\li
?????文件???????4404??2018-10-20?14:24??sift\sift\Debug\sift.tlog\li
?????文件????????366??2018-10-20?14:24??sift\sift\Debug\sift.tlog\li
?????文件????????155??2018-10-20?14:24??sift\sift\Debug\sift.tlog\sift.lastbuildstate
?????文件??????10973??2018-10-20?14:20??sift\sift\Debug\stdafx.obj
?????文件?????420864??2018-10-20?14:24??sift\sift\Debug\vc120.idb
?????文件?????872448??2018-10-20?14:24??sift\sift\Debug\vc120.pdb
?????文件?????468778??2018-10-20?14:19??sift\sift\p0.png
?????文件?????403011??2018-10-20?14:19??sift\sift\p1.png
?????文件???????1489??2018-10-20?13:56??sift\sift\ReadMe.txt
?????文件???????2001??2018-10-20?14:24??sift\sift\sift.cpp
?????文件???????5367??2018-10-20?14:20??sift\sift\sift.vcxproj
?????文件???????1311??2018-10-20?13:56??sift\sift\sift.vcxproj.filters
?????文件????????210??2018-10-20?13:56??sift\sift\stdafx.cpp
?????文件????????234??2018-10-20?13:56??sift\sift\stdafx.h
?????文件????????236??2018-10-20?13:56??sift\sift\targetver.h
?????文件???12779520??2018-10-20?14:24??sift\sift.sdf
?????文件????????958??2018-10-20?13:56??sift\sift.sln
............此處省略11個文件信息
- 上一篇:getif-2.3.1
- 下一篇:硬件課程設計-頻率發生器
評論
共有 條評論