本文整理汇总了C++中CFeatureExtraction::detectFeatures方法的典型用法代码示例。如果您正苦于以下问题:C++ CFeatureExtraction::detectFeatures方法的具体用法?C++ CFeatureExtraction::detectFeatures怎么用?C++ CFeatureExtraction::detectFeatures使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CFeatureExtraction
的用法示例。
在下文中一共展示了CFeatureExtraction::detectFeatures方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: TestExtractMatchProjectAndPaint
// ------------------------------------------------------
// TestCapture
// ------------------------------------------------------
void TestExtractMatchProjectAndPaint()
{
CDisplayWindow3D wind;
CFeatureExtraction fExt;
CFeatureList featsHarris_L, featsHarris_R;
CMatchedFeatureList mHarris, mSIFT, mSURF;
CImage imL, imR;
string imgL = MRPT_EXAMPLES_BASE_DIRECTORY + string("feature_extraction/") + string("imgs/imL_p01.jpg"); // Left image
string imgR = MRPT_EXAMPLES_BASE_DIRECTORY + string("feature_extraction/") + string("imgs/imR_p01.jpg"); // Right image
// Load and check images
if (!imL.loadFromFile( imgL ))
{
cerr << "Cannot load " << imgL << endl;
return;
}
cout << "Loaded test image: " << imgL << endl;
if (!imR.loadFromFile( imgR ))
{
cerr << "Cannot load " << imgR << endl;
return;
}
cout << "Loaded test image: " << imgR << endl;
cout << "***************************************************" << endl;
cout << "***************************************************" << endl;
// Extract features:
// HARRIS
cout << "Detecting HARRIS features in LEFT image" << endl;
fExt.options.featsType = featKLT;
fExt.detectFeatures( imL, featsHarris_L );
cout << "Detected " << featsHarris_L.size() << endl;
cout << "Detecting HARRIS features in RIGHT image" << endl;
fExt.detectFeatures( imR, featsHarris_R );
cout << "Detected " << featsHarris_R.size() << endl;
cout << "***************************************************" << endl;
cout << "***************************************************" << endl;
// Match features:
//size_t nMatches;
TMatchingOptions opt;
// HARRIS
cout << "Matching HARRIS features by CORRELATION" << endl;
//nMatches =
matchFeatures( featsHarris_L, featsHarris_R, mHarris );
cout << "Matches found: " << mHarris.size() << endl;
cout << "***************************************************" << endl;
} // end TestExtractMatchProjectAndPaint
示例2: TestExtractFeaturesTile
// ------------------------------------------------------
// TestCapture
// ------------------------------------------------------
void TestExtractFeaturesTile()
{
CDisplayWindow wind1,wind2;
CFeatureExtraction fExt;
CFeatureList featsHarris;
CImage img;
string the_img = myDataDir+string("test_image.jpg");
if (!img.loadFromFile(the_img ))
{
cerr << "Cannot load " << the_img << endl;
return;
}
cout << "Loaded test image: " << the_img << endl;
CTicTac tictac;
cout << "Extracting Harris features (tiled)... [f_harris_tiled.txt]";
fExt.options.featsType = featHarris;
fExt.options.harrisOptions.tile_image = true;
tictac.Tic();
fExt.detectFeatures( img, featsHarris );
cout << format(" %.03fms",tictac.Tac()*1000) << endl;
cout << "Detected " << featsHarris.size() << " features in " << endl;
featsHarris.saveToTextFile("f_harris_tiled.txt");
wind1.setWindowTitle("Harris detected features (Tiled image)");
wind1.showTiledImageAndPoints( img, featsHarris );
cout << "Extracting Harris features... [f_harris.txt]";
fExt.options.harrisOptions.tile_image = false;
tictac.Tic();
fExt.detectFeatures( img, featsHarris );
cout << format(" %.03fms",tictac.Tac()*1000) << endl;
featsHarris.saveToTextFile("f_harris.txt");
wind2.setWindowTitle("Harris detected features");
wind2.showTiledImageAndPoints( img, featsHarris );
mrpt::system::pause();
return;
}
示例3: feature_matching_test_Harris_SAD
// ------------------------------------------------------
// Benchmark: Harris + SAD
// ------------------------------------------------------
double feature_matching_test_Harris_SAD( int w, int h )
{
CTicTac tictac;
CImage imL, imR;
CFeatureExtraction fExt;
CFeatureList featsHarris_L, featsHarris_R;
CMatchedFeatureList mHarris;
getTestImage(0,imR);
getTestImage(1,imL);
// Extract features: HARRIS
fExt.options.featsType = featHarris;
TMatchingOptions opt;
const size_t N = 20;
opt.matching_method = TMatchingOptions::mmSAD;
// HARRIS
tictac.Tic();
for (size_t i=0;i<N;i++)
{
fExt.detectFeatures( imL, featsHarris_L, 0, NFEATS );
fExt.detectFeatures( imR, featsHarris_R, 0, NFEATS );
//nMatches =
matchFeatures( featsHarris_L, featsHarris_R, mHarris, opt );
}
const double T = tictac.Tac()/N;
// cout << endl << "L: " << featsHarris_L.size() << " R: " << featsHarris_R.size() << " M: " << mHarris.size() << endl;
return T;
}
示例4: feature_matching_test_FAST_CC
// ------------------------------------------------------
// Benchmark: Harris + SAD
// ------------------------------------------------------
double feature_matching_test_FAST_CC( int w, int h )
{
CTicTac tictac;
CImage imL, imR;
CFeatureExtraction fExt;
CFeatureList featsFAST_L, featsFAST_R;
CMatchedFeatureList mFAST;
getTestImage(0,imR);
getTestImage(1,imL);
// Extract features: HARRIS
fExt.options.featsType = featFAST;
//size_t nMatches;
TMatchingOptions opt;
const size_t N = 20;
// HARRIS
tictac.Tic();
for (size_t i=0;i<N;i++)
{
fExt.detectFeatures( imL, featsFAST_L, 0, NFEATS );
fExt.detectFeatures( imR, featsFAST_R, 0, NFEATS );
//nMatches =
matchFeatures( featsFAST_L, featsFAST_R, mFAST, opt );
}
const double T = tictac.Tac()/N;
// cout << endl << "L: " << featsFAST_L.size() << " R: " << featsFAST_R.size() << " M: " << mFAST.size() << endl;
return T;
}
示例5: benchmark_detectFeatures
double benchmark_detectFeatures(int N, [[maybe_unused]] int h)
{
// Generate a random image
CImage img;
getTestImage(0, img);
CFeatureExtraction fExt;
fExt.profiler.enable();
fExt.options.featsType = FEAT_TYPE;
for (int i = 0; i < N; i++)
{
CFeatureList fs;
fExt.detectFeatures(img, fs);
if (i == (N - 1))
std::cout << "(" << std::setw(4) << fs.size() << " found)\n";
}
return fExt.profiler.getMeanTime("detectFeatures");
}
示例6: benchmark_computeDescriptor
double benchmark_computeDescriptor(int N, int num_feats)
{
CImage img;
getTestImage(0, img);
CFeatureExtraction fExt;
fExt.profiler.enable();
fExt.options.featsType = featFASTER9;
for (int i = 0; i < N; i++)
{
CFeatureList fs;
fExt.detectFeatures(img, fs, 0 /*id*/, num_feats);
fExt.computeDescriptors(img, fs, DESCRIPTOR_TYPE);
}
return fExt.profiler.getMeanTime("computeDescriptors");
}
示例7: feature_extraction_test_Harris
// ------------------------------------------------------
// Benchmark: Harris
// ------------------------------------------------------
double feature_extraction_test_Harris( int N, int h )
{
CTicTac tictac;
// Generate a random image
CImage img;
getTestImage(0,img);
CFeatureExtraction fExt;
CFeatureList featsHarris;
fExt.options.featsType = featHarris;
tictac.Tic();
for (int i=0;i<N;i++)
fExt.detectFeatures( img, featsHarris );
const double T = tictac.Tac()/N;
// cout << "Harris: " << featsHarris.size();
return T;
}
示例8: benchmark_detectFeatures_FASTER
double benchmark_detectFeatures_FASTER(int N, int threshold)
{
CTicTac tictac;
// Generate a random image
CImage img;
getTestImage(0, img);
CFeatureExtraction fExt;
CFeatureList feats;
fExt.options.featsType = TYP;
fExt.options.FASTOptions.threshold = threshold;
fExt.options.patchSize = 0;
img = img.grayscale();
tictac.Tic();
for (int i = 0; i < N; i++) fExt.detectFeatures(img, feats, 0, MAX_N_FEATS);
const double T = tictac.Tac() / N;
return T;
}
示例9: TestTrackFeatures
void TestTrackFeatures()
{
CImage im1, im2;
im1.loadFromFile("/Trabajo/Experimentos/[2009] vOdometry Characterization/right1.jpg");
im2.loadFromFile("/Trabajo/Experimentos/[2009] vOdometry Characterization/right2.jpg");
CFeatureExtraction fExt;
CFeatureList feats;
fExt.options.featsType = featKLT;
fExt.detectFeatures( im1, feats );
feats.saveToTextFile("J:/Trabajo/Experimentos/[2009] vOdometry Characterization/before.txt");
CFeatureTracker_KL tracker;
// tracker.extra_params["add_new_features"] = 1; // track, AND ALSO, add new features
// ...
// Do tracking:
tracker.trackFeatures(im1, im2, feats);
feats.saveToTextFile("/Trabajo/Experimentos/[2009] vOdometry Characterization/after.txt");
}
示例10: feature_extraction_test_KLT
// ------------------------------------------------------
// Benchmark: KLT
// ------------------------------------------------------
double feature_extraction_test_KLT( int N, int h )
{
CTicTac tictac;
// Generate a random image
CImage img;
getTestImage(0,img);
CFeatureExtraction fExt;
CFeatureList featsKLT;
fExt.options.featsType = featKLT;
fExt.options.KLTOptions.threshold = 0.05f;
fExt.options.KLTOptions.radius = 5;
tictac.Tic();
for (int i=0;i<N;i++)
fExt.detectFeatures( img, featsKLT );
const double T = tictac.Tac()/N;
// cout << "SPIN: " << featsKLT.size();
return T;
}
示例11: feature_extraction_test_SIFT
// ------------------------------------------------------
// Benchmark: SIFT (hess)
// ------------------------------------------------------
double feature_extraction_test_SIFT( int N, int h )
{
CTicTac tictac;
// Generate a random image
CImage img;
getTestImage(0,img);
CFeatureExtraction fExt;
CFeatureList featsSIFT;
fExt.options.featsType = featSIFT;
fExt.options.SIFTOptions.implementation = CFeatureExtraction::Hess;
tictac.Tic();
for (int i=0;i<N;i++)
fExt.detectFeatures( img, featsSIFT );
const double T = tictac.Tac()/N;
// cout << "SIFT: " << featsSIFT.size();
return T;
}
示例12: feature_matching_test_SURF
// ------------------------------------------------------
// Benchmark: Harris + SAD
// ------------------------------------------------------
double feature_matching_test_SURF(int w, int h)
{
CTicTac tictac;
CImage imL, imR;
CFeatureExtraction fExt;
CFeatureList featsSURF_L, featsSURF_R;
CMatchedFeatureList mSURF;
getTestImage(0, imR);
getTestImage(1, imL);
// Extract features: HARRIS
fExt.options.featsType = featSURF;
// size_t nMatches;
TMatchingOptions opt;
const size_t N = 10;
opt.matching_method = TMatchingOptions::mmDescriptorSURF;
// HARRIS
tictac.Tic();
for (size_t i = 0; i < N; i++)
{
fExt.detectFeatures(imL, featsSURF_L, 0, NFEATS);
fExt.detectFeatures(imR, featsSURF_R, 0, NFEATS);
// nMatches =
matchFeatures(featsSURF_L, featsSURF_R, mSURF, opt);
}
const double T = tictac.Tac() / N;
// cout << endl << "L: " << featsSURF_L.size() << " R: " <<
// featsSURF_R.size() << " M: " << mSURF.size() << endl;
return T;
}
示例13: feature_extraction_test_FASTER
double feature_extraction_test_FASTER( int N, int threshold )
{
CTicTac tictac;
// Generate a random image
CImage img;
getTestImage(0,img);
CFeatureExtraction fExt;
CFeatureList feats;
fExt.options.featsType = TYP; // FASTER_N==9 ? featFASTER9 : (FASTER_N==10 ? featFASTER10 : featFASTER12 );
fExt.options.FASTOptions.threshold = threshold; //20;
fExt.options.patchSize = 0;
img.grayscaleInPlace();
tictac.Tic();
for (int i=0;i<N;i++)
fExt.detectFeatures( img, feats,0, MAX_N_FEATS );
const double T = tictac.Tac()/N;
return T;
}
示例14: feature_extraction_test_Spin_desc
// ------------------------------------------------------
// Benchmark: Spin descriptor
// ------------------------------------------------------
double feature_extraction_test_Spin_desc( int N, int h )
{
CTicTac tictac;
// Generate a random image
CImage img;
getTestImage(0,img);
CFeatureExtraction fExt;
CFeatureList featsHarris;
fExt.options.SpinImagesOptions.radius = 13;
fExt.options.SpinImagesOptions.hist_size_distance = 10;
fExt.options.SpinImagesOptions.hist_size_intensity = 10;
fExt.detectFeatures( img, featsHarris );
tictac.Tic();
for (int i=0;i<N;i++)
fExt.computeDescriptors( img, featsHarris, descSpinImages );
const double T = tictac.Tac()/N;
return T;
}
示例15: feature_extraction_test_FAST
// ------------------------------------------------------
// Benchmark: FAST
// ------------------------------------------------------
double feature_extraction_test_FAST( int N, int h )
{
CTicTac tictac;
// Generate a random image
CImage img;
getTestImage(0,img);
CFeatureExtraction fExt;
CFeatureList featsFAST;
fExt.options.featsType = featFAST;
fExt.options.FASTOptions.threshold = 20;
fExt.options.patchSize = 0;
img.grayscaleInPlace();
tictac.Tic();
for (int i=0;i<N;i++)
fExt.detectFeatures( img, featsFAST );
const double T = tictac.Tac()/N;
return T;
}