资源简介

本VS工程是基于ORB算法的特征提取和匹配,搭建环境为:VS2015+OpenCV2.4.9。

资源截图

代码片段和文件信息

#include   
#include   
#include   
#include   
#include   
#include   

using namespace cv;
using namespace std;
int main()
{
Mat img_1 = imread(“.\\imagedata\\beaver.png“);
Mat img_2 = imread(“.\\imagedata\\beaver_xform.png“);
/*Mat img_1 = imread(“.\\imagedata\\beaver.png“);
Mat img_2 = imread(“.\\imagedata\\beaver_xform.png“);*/
if (!img_1.data || !img_2.data)
{
cout << “error reading images “ << endl;
return -1;
}

ORB orb;
vector keyPoints_1 keyPoints_2;
Mat descriptors_1 descriptors_2;

orb(img_1 Mat() keyPoints_1 descriptors_1);
orb(img_2 Mat() keyPoints_2 descriptors_2);

BruteForceMatcher matcher;
vector matches;
matcher.match(descriptors_1 descriptors_2 matches);

double max_dist = 0; double min_dist = 100;
//-- Quick calculation of max and min distances between keypoints  
for (int i = 0; i < descriptors_1.rows; i++)
{
double dist = matches[i].distance;
if (dist < min_dist) min_dist = dist;
if (dist > max_dist) max_dist = dist;
}
printf(“-- Max dist : %f \n“ max_dist);
printf(“-- Min dist : %f \n“ min_dist);
//-- Draw only “good“ matches (i.e. whose distance is less than 0.6*max_dist )  
//-- PS.- radiusMatch can also be used here.  
std::vector< DMatch > good_matches;
for (int i = 0; i < descriptors_1.rows; i++)
{
if (matches[i].distance < 0.6*max_dist)
{
good_matches.push_back(matches[i]);
}
}

Mat img_matches;
drawMatches(img_1 keyPoints_1 img_2 keyPoints_2
good_matches img_matches Scalar::all(-1) Scalar::all(-1)
vector() DrawMatchesFlags::NOT_DRAW_SINGLE_POINTS);
imshow(“Match“ img_matches);
cvWaitKey();
return 0;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-03-24 23:40  orb_match\
     目录           0  2019-01-09 16:39  orb_match\.vs\
     目录           0  2019-01-09 16:39  orb_match\.vs\sift_process\
     目录           0  2019-01-09 16:39  orb_match\.vs\sift_process\v14\
     文件       60928  2019-03-24 23:40  orb_match\.vs\sift_process\v14\.suo
     目录           0  2019-03-24 23:40  orb_match\sift_process\
     目录           0  2019-03-24 23:40  orb_match\sift_process\imagedata\
     文件       48824  2010-05-21 12:48  orb_match\sift_process\imagedata\beaver.png
     文件       39513  2010-05-21 12:48  orb_match\sift_process\imagedata\beaver_xform.png
     目录           0  2019-03-24 23:40  orb_match\sift_process\match\
     文件       48824  2010-05-21 12:48  orb_match\sift_process\match\beaver.png
     文件       39513  2010-05-21 12:48  orb_match\sift_process\match\beaver_xform.png
     文件        1838  2019-03-24 23:40  orb_match\sift_process\match\match.cpp
     文件        8825  2019-01-09 16:48  orb_match\sift_process\sift_process.vcxproj
     文件         952  2019-01-09 16:48  orb_match\sift_process\sift_process.vcxproj.filters
     文件         165  2018-08-29 16:19  orb_match\sift_process\sift_process.vcxproj.user
     文件    43515904  2018-11-29 08:52  orb_match\sift_process.sdf
     文件        1318  2018-08-29 16:17  orb_match\sift_process.sln
     文件    15167488  2019-03-24 23:40  orb_match\sift_process.VC.db

评论

共有 条评论