-
大小: 4.72MB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2024-01-22
- 語言: 其他
- 標(biāo)簽: 角點(diǎn)檢測??Harris??SIFT??SURF??
資源簡介
本程序只是一個(gè)簡單的demo,里面包含了Opencv對(duì)HARRIS,SHI_TOMASI,FAST,SURF,SIFT算法的實(shí)現(xiàn),初學(xué)著可以看看。

代碼片段和文件信息
//?Harriscornerdetect.cpp?:?定義控制臺(tái)應(yīng)用程序的入口點(diǎn)。
//
#include?“stdafx.h“
#include?“harris.h“
#include?“opencv2/nonfree/features2d.hpp“
#include?“opencv2/legacy/legacy.hpp“
int?typevalue;
int?maxtype=4;
char?*winname=“cornerdetect“;
Mat?image1image2image;
void?typeCallback(intvoid*);
void?harrisDetect();
void?goodFeaturesDetect();
void?fastDetect();
void?surfDetect();
void?siftDetect();
int?main(int?argc?char?*argv[])
{
????image1?=?imread?(“tower320.jpg“);
image2?=?imread?(“tower256.jpg“0);
if?(!image1.data||!image2.data)
{
printf(“please?input?the?right?picture.“);
return?-1;
}
namedWindow(winname);
createTrackbar(“CornerDetectType“winname&typevaluemaxtypetypeCallback);
typeCallback(00);
????waitKey?(0);
????return?0;
}
void?typeCallback(intvoid*)
{
//灰度變換
????cvtColor?(image1imageCV_BGR2GRAY);
switch?(typevalue)
{
case?0:
harrisDetect();
break;
case?1:
goodFeaturesDetect();
break;
case?2:
fastDetect();
break;
case?3:
surfDetect();
break;
case?4:
siftDetect();
break;
}
}
void?harrisDetect()
{
//?經(jīng)典的harris角點(diǎn)方法
harris?Harris;
//?計(jì)算角點(diǎn)
Harris.detect(image);
//獲得角點(diǎn)
vector?pts;
Harris.getCorners(pts0.01);
//?標(biāo)記角點(diǎn)
Harris.drawOnImage(imagepts);
imshow?(winnameimage);
}
void?goodFeaturesDetect()
{
//?改進(jìn)的harris角點(diǎn)檢測方法
vector?corners;
goodFeaturesToTrack(imagecorners
200
//角點(diǎn)最大數(shù)目
0.01
//?質(zhì)量等級(jí),這里是0.01*max(min(e1,e2)),e1,e2是harris矩陣的特征值
10);
//?兩個(gè)角點(diǎn)之間的距離容忍度
harris().drawOnImage(imagecorners);//標(biāo)記角點(diǎn)
imshow?(winnameimage);
}
void?fastDetect()
{
????//快速角點(diǎn)檢測
????vector?keypoints;
????FastFeatureDetector?fast(40true);
????fast.detect?(imagekeypoints);
????drawKeypoints?(imagekeypointsimageScalar::all(255)DrawMatchesFlags::DRAW_OVER_OUTIMG);
imshow?(winnameimage);
}
void?surfDetect()
{
vector?keypoints_1?keypoints_2;
?Mat?descriptors_1?descriptors_2;
?//--?Step?1:?Detect?the?keypoints?using?SURF?Detector
SurfFeatureDetector?surf(2500);
surf.detect(imagekeypoints_1);
surf.detect(image2keypoints_2);
//--?Step?2:?Calculate?descriptors?(feature?vectors)
SurfDescriptorExtractor?extractor;
extractor.compute(?image?keypoints_1?descriptors_1?);
extractor.compute(?image2?keypoints_2?descriptors_2?);
//--?Step?3:?Matching?descriptor?vectors?with?a?brute?force?matcher
BruteForceMatcher?>?matcher;
std::vector?matches;
matcher.match(?descriptors_1?descriptors_2?matches?);
nth_element(matches.begin()matches.begin()+24matches.end());
matches.erase(matches.begin()+25matches.end());
//--?Draw?matches
Mat?img_matches;
drawMatches(?image?keypoints_1?image2?keypoints_2?matches?img_matchesScalar(255255255)?);
drawKeypoints(imagekeypoints_1imageScalar(255255255)DrawMatchesFlags::DRAW_RICH_KEYPOINTS);
//--?Show?detected?matches
imshow(“Matches“?img_matches?);
imshow?(winna
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件?????112128??2014-04-01?12:04??Harriscornerdetect\Debug\Harriscornerdetect.exe
?????文件????1101100??2014-04-01?12:04??Harriscornerdetect\Debug\Harriscornerdetect.ilk
?????文件????2075648??2014-04-01?12:04??Harriscornerdetect\Debug\Harriscornerdetect.pdb
?????文件???????1802??2014-04-01?12:04??Harriscornerdetect\Harriscornerdetect\Debug\cl.command.1.tlog
?????文件??????13450??2014-04-01?12:04??Harriscornerdetect\Harriscornerdetect\Debug\CL.read.1.tlog
?????文件???????1044??2014-04-01?12:04??Harriscornerdetect\Harriscornerdetect\Debug\CL.write.1.tlog
?????文件????????406??2014-03-30?17:08??Harriscornerdetect\Harriscornerdetect\Debug\Harriscornerdetect.exe.em
?????文件????????472??2014-03-30?17:08??Harriscornerdetect\Harriscornerdetect\Debug\Harriscornerdetect.exe.em
?????文件????????381??2014-04-01?12:04??Harriscornerdetect\Harriscornerdetect\Debug\Harriscornerdetect.exe.intermediate.manifest
?????文件?????????61??2014-04-01?12:04??Harriscornerdetect\Harriscornerdetect\Debug\Harriscornerdetect.lastbuildstate
?????文件???????3327??2014-04-01?12:04??Harriscornerdetect\Harriscornerdetect\Debug\Harriscornerdetect.log
?????文件?????434917??2014-04-01?12:04??Harriscornerdetect\Harriscornerdetect\Debug\Harriscornerdetect.obj
?????文件????1179648??2014-03-30?16:31??Harriscornerdetect\Harriscornerdetect\Debug\Harriscornerdetect.pch
?????文件????????226??2014-03-30?17:08??Harriscornerdetect\Harriscornerdetect\Debug\Harriscornerdetect_manifest.rc
?????文件??????????2??2014-04-01?12:04??Harriscornerdetect\Harriscornerdetect\Debug\li
?????文件??????????2??2014-04-01?12:04??Harriscornerdetect\Harriscornerdetect\Debug\li
?????文件??????????2??2014-04-01?12:04??Harriscornerdetect\Harriscornerdetect\Debug\li
?????文件??????????2??2014-04-01?12:04??Harriscornerdetect\Harriscornerdetect\Debug\li
?????文件??????????2??2014-04-01?12:04??Harriscornerdetect\Harriscornerdetect\Debug\li
?????文件??????????2??2014-04-01?12:04??Harriscornerdetect\Harriscornerdetect\Debug\li
?????文件??????????2??2014-04-01?12:04??Harriscornerdetect\Harriscornerdetect\Debug\li
?????文件??????????2??2014-04-01?12:04??Harriscornerdetect\Harriscornerdetect\Debug\li
?????文件??????????2??2014-04-01?12:04??Harriscornerdetect\Harriscornerdetect\Debug\li
?????文件??????????2??2014-04-01?12:04??Harriscornerdetect\Harriscornerdetect\Debug\li
?????文件??????????2??2014-04-01?12:04??Harriscornerdetect\Harriscornerdetect\Debug\li
?????文件??????????2??2014-04-01?12:04??Harriscornerdetect\Harriscornerdetect\Debug\li
?????文件??????????2??2014-04-01?12:04??Harriscornerdetect\Harriscornerdetect\Debug\li
?????文件??????????2??2014-04-01?12:04??Harriscornerdetect\Harriscornerdetect\Debug\li
?????文件??????????2??2014-04-01?12:04??Harriscornerdetect\Harriscornerdetect\Debug\li
?????文件??????????2??2014-04-01?12:04??Harriscornerdetect\Harriscornerdetect\Debug\li
............此處省略58個(gè)文件信息
- 上一篇:江蘇省三級(jí)偏硬偏軟考試大綱.
- 下一篇:樹葉數(shù)據(jù)集
評(píng)論
共有 條評(píng)論