mirror of
https://github.com/opencv/opencv.git
synced 2025-01-18 22:44:02 +08:00
Merge pull request #13361 from okriof:brisk_getset
* Get/Set functions for BRISK parameters, issue #11527. Allows setting threshold and octaves parameters after creating a brisk object. These parameters do not affect the initial pattern initialization and can be changed later without re-initialization. * Fix doc parameter name. * Brisk get/set functions tests. Check for correct value and make tests independent of default parameter values. * Add dummy implementations for BRISK get/set functions not to break API in case someone has overloaded the Feature2d::BRISK interface. This makes BRISK different from the other detectors/descriptors on the other hand, where get/set functions are pure virtual in the interface.
This commit is contained in:
parent
e55ad25355
commit
ef42baf9f0
@ -285,6 +285,18 @@ public:
|
||||
const std::vector<int> &numberList, float dMax=5.85f, float dMin=8.2f,
|
||||
const std::vector<int>& indexChange=std::vector<int>());
|
||||
CV_WRAP virtual String getDefaultName() const CV_OVERRIDE;
|
||||
|
||||
/** @brief Set detection threshold.
|
||||
@param threshold AGAST detection threshold score.
|
||||
*/
|
||||
CV_WRAP virtual void setThreshold(int threshold) { CV_UNUSED(threshold); return; };
|
||||
CV_WRAP virtual int getThreshold() const { return -1; };
|
||||
|
||||
/** @brief Set detection octaves.
|
||||
@param octaves detection octaves. Use 0 to do single scale.
|
||||
*/
|
||||
CV_WRAP virtual void setOctaves(int octaves) { CV_UNUSED(octaves); return; };
|
||||
CV_WRAP virtual int getOctaves() const { return -1; };
|
||||
};
|
||||
|
||||
/** @brief Class implementing the ORB (*oriented BRIEF*) keypoint detector and descriptor extractor
|
||||
|
@ -80,6 +80,26 @@ public:
|
||||
return NORM_HAMMING;
|
||||
}
|
||||
|
||||
virtual void setThreshold(int threshold_in) CV_OVERRIDE
|
||||
{
|
||||
threshold = threshold_in;
|
||||
}
|
||||
|
||||
virtual int getThreshold() const CV_OVERRIDE
|
||||
{
|
||||
return threshold;
|
||||
}
|
||||
|
||||
virtual void setOctaves(int octaves_in) CV_OVERRIDE
|
||||
{
|
||||
octaves = octaves_in;
|
||||
}
|
||||
|
||||
virtual int getOctaves() const CV_OVERRIDE
|
||||
{
|
||||
return octaves;
|
||||
}
|
||||
|
||||
// call this to generate the kernel:
|
||||
// circle of radius r (pixels), with n points;
|
||||
// short pairings with dMax, long pairings with dMin
|
||||
|
@ -73,6 +73,18 @@ void CV_BRISKTest::run( int )
|
||||
|
||||
Ptr<FeatureDetector> detector = BRISK::create();
|
||||
|
||||
// Check parameter get/set functions.
|
||||
BRISK* detectorTyped = dynamic_cast<BRISK*>(detector.get());
|
||||
ASSERT_NE(nullptr, detectorTyped);
|
||||
detectorTyped->setOctaves(3);
|
||||
detectorTyped->setThreshold(30);
|
||||
ASSERT_EQ(detectorTyped->getOctaves(), 3);
|
||||
ASSERT_EQ(detectorTyped->getThreshold(), 30);
|
||||
detectorTyped->setOctaves(4);
|
||||
detectorTyped->setThreshold(29);
|
||||
ASSERT_EQ(detectorTyped->getOctaves(), 4);
|
||||
ASSERT_EQ(detectorTyped->getThreshold(), 29);
|
||||
|
||||
vector<KeyPoint> keypoints1;
|
||||
vector<KeyPoint> keypoints2;
|
||||
detector->detect(image1, keypoints1);
|
||||
|
Loading…
Reference in New Issue
Block a user