91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

這個是計算機視覺三維重建的領域。該代碼實現特征點提取和立體匹配的功能。三維重建模擬人眼,進行雙目拍攝。這里在經典特征點特區SURF算法基礎上,加入極線約束的思想,去除噪聲和匹配錯誤的雜點。有很好的匹配效果。

資源截圖

代碼片段和文件信息

//?多種特征提取.cpp?:?定義控制臺應用程序的入口點。
//

//#include?“stdafx.h“
#include?
#include?
#include?“opencv2/opencv.hpp“
#include?“opencv2/core/core.hpp“??
#include?“opencv2/features2d/features2d.hpp“??
#include?“opencv2/highgui/highgui.hpp“??
#include??“opencv2/legacy/legacy.hpp“?//?暴力匹配的頭文件
#include??“opencv2/nonfree/nonfree.hpp“
#include???
#include??


//#include?“cv_import_static_lib.h“

using?namespace?std;
using?namespace?cv;

void?main(){


Mat?img1?=?imread(“左1.jpg“?CV_LOAD_IMAGE_GRAYSCALE);
Mat?img2?=?imread(“右1.jpg“?CV_LOAD_IMAGE_GRAYSCALE);
Mat?img_1?img_2;
resize(img1?img_1?Size(img1.cols?/?4?img1.rows?/?4)?0?0?INTER_LINEAR);
resize(img2?img_2?Size(img2.cols?/?4?img2.rows?/?4)?0?0?INTER_LINEAR);
if?(!img_1.data?||?!img_2.data)
{
cout?< return;
}

vector?keyPoints_1?keyPoints_2;
Mat?descriptors_1?descriptors_2;

/*-----------------SIFT?featrue?Point----------------
SIFT?sift;
sift(img_1?Mat()?keyPoints_1?descriptors_1);
sift(img_2?Mat()?keyPoints_2?descriptors_2);
*/

/*-----------------SURF?featrue?Point----------------
SURF?surf;
surf(img_1?Mat()?keyPoints_1?descriptors_1);
surf(img_2?Mat()?keyPoints_2?descriptors_2);
//SurfDescriptorExtractor?extrator;???????????//?another?surf?sift?operation
//extrator.compute(img_1?keyPoints_1?descriptors_1);
//extrator.compute(img_2?keyPoints_2?descriptors_2);
*/

//-----------------ORB?featrue?Point----------------
ORB?orb;???//?float?Feature?can?not?use?Flannbase?Match.
orb(img_1?Mat()?keyPoints_1?descriptors_1);
orb(img_2?Mat()?keyPoints_2?descriptors_2);


/*-----------------ORB?featrue?Point----------------
MSER?mesr;
*/

/*-----------------FAST?featrue?Point----------------
FastFeatureDetector?fast1(100);???//?檢測的閾值為40
FastFeatureDetector?fast2(100);

fast1.detect(img_1?keyPoints_1);
fast2.detect(img_2?keyPoints_2);
//SurfDescriptorExtractor?extrator;???????????//?another?surf?sift?operation
//extrator.compute(img_1?keyPoints_1?descriptors_1);
//extrator.compute(img_2?keyPoints_2?descriptors_2);

OrbDescriptorExtractor?extrator;
extrator.compute(img_1?keyPoints_1?descriptors_1);
extrator.compute(img_2?keyPoints_2?descriptors_2);
*/


BruteForceMatcher?matcher;//?orb?等float型的

//FlannbasedMatcher?matcher;???//?只能?對uchar的點進行匹配

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?riptors_1.rows;?i++)
{
double?dist?=?matches[i].distance;
if?(dist? if?(dist?>?max_dist)?max_dist?=?dist;
}
cout?< cout?<
//--?Draw?only?“good“?matches?(i.e.?whose?

評論

共有 條評論