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

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

Definition at line 1016 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().

01017     {
01018         CmdOptions& options = CmdOptions::GetInstance();
01019         Real64 harrisThreshold  = options.GetDouble("harrisThreshold");
01020         Real64 harrisK          = options.GetDouble("harrisK");
01021         Real64 laplaceThreshold = options.GetDouble("laplaceThreshold");
01022         
01023         PointDescriptorTable* output = 0;
01024 
01025         if((detectorMode == "harrislaplace") || (detectorMode == "harrislaplace2"))
01026         {
01027             HarrisLaplaceDetector detector(mUseRecGauss);
01028             detector.mBackwardsCompatible = false;
01029             output = detector.HLDetector(inputNoBorder, harrisThreshold,
01030                                 harrisK, laplaceThreshold);
01031         }
01032         else if(detectorMode == "colorharrislaplace")
01033         {
01034             // recommendation: set harrisThreshold to at least 0.001 in color
01035             // mode (due to very different ranges!)
01036             HarrisLaplaceDetector detector(mUseRecGauss);
01037             detector.mBackwardsCompatible = false;
01038             output = detector.CHLDetector(inputNoBorder, harrisThreshold,
01039                                  harrisK, laplaceThreshold);
01040         }
01041         else if(detectorMode == "laplacian")
01042         {
01043             output = LaplacianDetector(inputNoBorder, true);
01044         }
01045         else if(detectorMode == "densesampling")
01046         {
01047             int spacing = options.GetInt("ds_spacing");
01048             output = DenseSamplingDetector(inputNoBorder, spacing);
01049         }
01050         else if(detectorMode == "denseall")
01051         {
01052             output = DenseAllDetector(inputNoBorder);
01053         }
01054         else if(detectorMode == "none")
01055         {
01056             // we don't add point in the detector phase, they are added in the
01057             // descsriptor fase. see Core/Feature/Surf.h for an example
01058             output = new PointDescriptorTable();
01059         }
01060         else
01061         {
01062             ILOG_ERROR("[ERROR] Unknown detector mode: " << detectorMode);
01063             return 0;
01064         }
01065         output->SetFeatureDefinition(FeatureDefinition(detectorMode));
01066         return output;
01067     }

Here is the call graph for this function:


Generated on Fri Mar 19 11:10:03 2010 for ImpalaSrc by  doxygen 1.5.1