switched to non-constant references in Algorithm::addParam, which is more safe.

This commit is contained in:
Vadim Pisarevsky
2012-03-17 09:50:47 +00:00
parent 846e37ded5
commit d60623279c
11 changed files with 94 additions and 86 deletions

View File

@@ -160,17 +160,18 @@ AlgorithmInfo* GFTTDetector::info() const
static volatile bool initialized = false;
if( !initialized )
{
gftt_info.addParam(this, "nfeatures", nfeatures);
gftt_info.addParam(this, "qualityLevel", qualityLevel);
gftt_info.addParam(this, "minDistance", minDistance);
gftt_info.addParam(this, "useHarrisDetector", useHarrisDetector);
gftt_info.addParam(this, "k", k);
GFTTDetector obj;
gftt_info.addParam(obj, "nfeatures", obj.nfeatures);
gftt_info.addParam(obj, "qualityLevel", obj.qualityLevel);
gftt_info.addParam(obj, "minDistance", obj.minDistance);
gftt_info.addParam(obj, "useHarrisDetector", obj.useHarrisDetector);
gftt_info.addParam(obj, "k", obj.k);
harris_info.addParam(this, "nfeatures", nfeatures);
harris_info.addParam(this, "qualityLevel", qualityLevel);
harris_info.addParam(this, "minDistance", minDistance);
harris_info.addParam(this, "useHarrisDetector", useHarrisDetector);
harris_info.addParam(this, "k", k);
harris_info.addParam(obj, "nfeatures", obj.nfeatures);
harris_info.addParam(obj, "qualityLevel", obj.qualityLevel);
harris_info.addParam(obj, "minDistance", obj.minDistance);
harris_info.addParam(obj, "useHarrisDetector", obj.useHarrisDetector);
harris_info.addParam(obj, "k", obj.k);
initialized = true;
}
@@ -217,24 +218,25 @@ void DenseFeatureDetector::detectImpl( const Mat& image, vector<KeyPoint>& keypo
static Algorithm* createDense() { return new DenseFeatureDetector; }
static AlgorithmInfo dense_info("Feature2D.Dense", createDense);
AlgorithmInfo* DenseFeatureDetector::info() const
{
static AlgorithmInfo info_("Feature2D.Dense", createDense);
static volatile bool initialized = false;
if( !initialized )
{
info_.addParam(this, "initFeatureScale", initFeatureScale);
info_.addParam(this, "featureScaleLevels", featureScaleLevels);
info_.addParam(this, "featureScaleMul", featureScaleMul);
info_.addParam(this, "initXyStep", initXyStep);
info_.addParam(this, "initImgBound", initImgBound);
info_.addParam(this, "varyXyStepWithScale", varyXyStepWithScale);
info_.addParam(this, "varyImgBoundWithScale", varyImgBoundWithScale);
DenseFeatureDetector obj;
dense_info.addParam(obj, "initFeatureScale", obj.initFeatureScale);
dense_info.addParam(obj, "featureScaleLevels", obj.featureScaleLevels);
dense_info.addParam(obj, "featureScaleMul", obj.featureScaleMul);
dense_info.addParam(obj, "initXyStep", obj.initXyStep);
dense_info.addParam(obj, "initImgBound", obj.initImgBound);
dense_info.addParam(obj, "varyXyStepWithScale", obj.varyXyStepWithScale);
dense_info.addParam(obj, "varyImgBoundWithScale", obj.varyImgBoundWithScale);
initialized = true;
}
return &info_;
return &dense_info;
}
/*

View File

@@ -400,8 +400,9 @@ AlgorithmInfo* FastFeatureDetector::info() const
static volatile bool initialized = false;
if( !initialized )
{
fast_info.addParam(this, "threshold", threshold);
fast_info.addParam(this, "nonmaxSuppression", nonmaxSuppression);
FastFeatureDetector obj;
fast_info.addParam(obj, "threshold", obj.threshold);
fast_info.addParam(obj, "nonmaxSuppression", obj.nonmaxSuppression);
initialized = true;
}

View File

@@ -1307,15 +1307,16 @@ AlgorithmInfo* MSER::info() const
static volatile bool initialized = false;
if( !initialized )
{
mser_info.addParam(this, "delta", delta);
mser_info.addParam(this, "minArea", minArea);
mser_info.addParam(this, "maxArea", maxArea);
mser_info.addParam(this, "maxVariation", maxVariation);
mser_info.addParam(this, "minDiversity", minDiversity);
mser_info.addParam(this, "maxEvolution", maxEvolution);
mser_info.addParam(this, "areaThreshold", areaThreshold);
mser_info.addParam(this, "minMargin", minMargin);
mser_info.addParam(this, "edgeBlurSize", edgeBlurSize);
MSER obj;
mser_info.addParam(obj, "delta", obj.delta);
mser_info.addParam(obj, "minArea", obj.minArea);
mser_info.addParam(obj, "maxArea", obj.maxArea);
mser_info.addParam(obj, "maxVariation", obj.maxVariation);
mser_info.addParam(obj, "minDiversity", obj.minDiversity);
mser_info.addParam(obj, "maxEvolution", obj.maxEvolution);
mser_info.addParam(obj, "areaThreshold", obj.areaThreshold);
mser_info.addParam(obj, "minMargin", obj.minMargin);
mser_info.addParam(obj, "edgeBlurSize", obj.edgeBlurSize);
initialized = true;
}

View File

@@ -556,14 +556,15 @@ AlgorithmInfo* ORB::info() const
static volatile bool initialized = false;
if( !initialized )
{
orb_info.addParam(this, "nFeatures", nfeatures);
orb_info.addParam(this, "scaleFactor", scaleFactor);
orb_info.addParam(this, "nLevels", nlevels);
orb_info.addParam(this, "firstLevel", firstLevel);
orb_info.addParam(this, "edgeThreshold", edgeThreshold);
orb_info.addParam(this, "patchSize", patchSize);
orb_info.addParam(this, "WTA_K", WTA_K);
orb_info.addParam(this, "scoreType", scoreType);
ORB obj;
orb_info.addParam(obj, "nFeatures", obj.nfeatures);
orb_info.addParam(obj, "scaleFactor", obj.scaleFactor);
orb_info.addParam(obj, "nLevels", obj.nlevels);
orb_info.addParam(obj, "firstLevel", obj.firstLevel);
orb_info.addParam(obj, "edgeThreshold", obj.edgeThreshold);
orb_info.addParam(obj, "patchSize", obj.patchSize);
orb_info.addParam(obj, "WTA_K", obj.WTA_K);
orb_info.addParam(obj, "scoreType", obj.scoreType);
initialized = true;
}

View File

@@ -456,11 +456,12 @@ AlgorithmInfo* StarDetector::info() const
static volatile bool initialized = false;
if( !initialized )
{
star_info.addParam(this, "maxSize", maxSize);
star_info.addParam(this, "responseThreshold", responseThreshold);
star_info.addParam(this, "lineThresholdProjected", lineThresholdProjected);
star_info.addParam(this, "lineThresholdBinarized", lineThresholdBinarized);
star_info.addParam(this, "suppressNonmaxSize", suppressNonmaxSize);
StarDetector obj;
star_info.addParam(obj, "maxSize", obj.maxSize);
star_info.addParam(obj, "responseThreshold", obj.responseThreshold);
star_info.addParam(obj, "lineThresholdProjected", obj.lineThresholdProjected);
star_info.addParam(obj, "lineThresholdBinarized", obj.lineThresholdBinarized);
star_info.addParam(obj, "suppressNonmaxSize", obj.suppressNonmaxSize);
initialized = true;
}