Home || Visual Search || Applications || Architecture || Important Messages || OGL || Src

PointDescriptorTable* Impala::Core::Feature::InterestPointFeature::ApplyDetector ( Array::Array2dVec3UInt8 inputNoBorder,
String  detectorMode 
) [inline, private]

Definition at line 1309 of file InterestPointFeature.h.

References Impala::Core::Feature::HarrisLaplaceDetector::CHLDetector(), DenseAllDetector(), DenseSamplingDetector(), Impala::CmdOptions::GetDouble(), Impala::CmdOptions::GetInstance(), Impala::CmdOptions::GetInt(), Impala::Core::Feature::HarrisLaplaceDetector::HLDetector(), ILOG_ERROR, Impala::Core::Feature::LaplacianDetector(), Impala::Core::Feature::HarrisLaplaceDetector::mBackwardsCompatible, mUseRecGauss, and Impala::Core::Feature::PointDescriptorTable::SetFeatureDefinition().

Referenced by FindInterestPoints().

01310     {
01311         CmdOptions& options = CmdOptions::GetInstance();
01312         Real64 harrisThreshold  = options.GetDouble("harrisThreshold");
01313         Real64 harrisK          = options.GetDouble("harrisK");
01314         Real64 laplaceThreshold = options.GetDouble("laplaceThreshold");
01315         
01316         PointDescriptorTable* output = 0;
01317 
01318         if((detectorMode == "harrislaplace") || (detectorMode == "harrislaplace2"))
01319         {
01320             HarrisLaplaceDetector detector(mUseRecGauss);
01321             detector.mBackwardsCompatible = false;
01322             output = detector.HLDetector(inputNoBorder, harrisThreshold,
01323                                 harrisK, laplaceThreshold);
01324         }
01325         else if(detectorMode == "colorharrislaplace")
01326         {
01327             // recommendation: set harrisThreshold to at least 0.001 in color
01328             // mode (due to very different ranges!)
01329             HarrisLaplaceDetector detector(mUseRecGauss);
01330             detector.mBackwardsCompatible = false;
01331             output = detector.CHLDetector(inputNoBorder, harrisThreshold,
01332                                  harrisK, laplaceThreshold);
01333         }
01334         else if(detectorMode == "laplacian")
01335         {
01336             output = LaplacianDetector(inputNoBorder, true);
01337         }
01338         else if(detectorMode == "densesampling")
01339         {
01340             int spacing = options.GetInt("ds_spacing");
01341             output = DenseSamplingDetector(inputNoBorder, spacing);
01342         }
01343         else if(detectorMode == "denseall")
01344         {
01345             output = DenseAllDetector(inputNoBorder);
01346         }
01347         else if(detectorMode == "none")
01348         {
01349             // we don't add point in the detector phase, they are added in the
01350             // descsriptor fase. see Core/Feature/Surf.h for an example
01351             output = new PointDescriptorTable();
01352         }
01353         else
01354         {
01355             ILOG_ERROR("[ERROR] Unknown detector mode: " << detectorMode);
01356             return 0;
01357         }
01358         output->SetFeatureDefinition(FeatureDefinition(detectorMode));
01359         return output;
01360     }

Here is the call graph for this function:


Generated on Thu Jan 13 09:19:24 2011 for ImpalaSrc by  doxygen 1.5.1