Commit 1d4a29f1 authored by Alexander Alekhin's avatar Alexander Alekhin

Merge pull request #9366 from martinsey:brisk-detection-parameter-extension

parents 66b06516 e5f12942
...@@ -250,6 +250,23 @@ public: ...@@ -250,6 +250,23 @@ public:
@param indexChange index remapping of the bits. */ @param indexChange index remapping of the bits. */
CV_WRAP static Ptr<BRISK> create(const std::vector<float> &radiusList, const std::vector<int> &numberList, CV_WRAP static Ptr<BRISK> create(const std::vector<float> &radiusList, const std::vector<int> &numberList,
float dMax=5.85f, float dMin=8.2f, const std::vector<int>& indexChange=std::vector<int>()); float dMax=5.85f, float dMin=8.2f, const std::vector<int>& indexChange=std::vector<int>());
/** @brief The BRISK constructor for a custom pattern, detection threshold and octaves
@param thresh AGAST detection threshold score.
@param octaves detection octaves. Use 0 to do single scale.
@param radiusList defines the radii (in pixels) where the samples around a keypoint are taken (for
keypoint scale 1).
@param numberList defines the number of sampling points on the sampling circle. Must be the same
size as radiusList..
@param dMax threshold for the short pairings used for descriptor formation (in pixels for keypoint
scale 1).
@param dMin threshold for the long pairings used for orientation determination (in pixels for
keypoint scale 1).
@param indexChange index remapping of the bits. */
CV_WRAP static Ptr<BRISK> create(int thresh, int octaves, const std::vector<float> &radiusList,
const std::vector<int> &numberList, float dMax=5.85f, float dMin=8.2f,
const std::vector<int>& indexChange=std::vector<int>());
}; };
/** @brief Class implementing the ORB (*oriented BRIEF*) keypoint detector and descriptor extractor /** @brief Class implementing the ORB (*oriented BRIEF*) keypoint detector and descriptor extractor
......
...@@ -59,6 +59,10 @@ public: ...@@ -59,6 +59,10 @@ public:
explicit BRISK_Impl(const std::vector<float> &radiusList, const std::vector<int> &numberList, explicit BRISK_Impl(const std::vector<float> &radiusList, const std::vector<int> &numberList,
float dMax=5.85f, float dMin=8.2f, const std::vector<int> indexChange=std::vector<int>()); float dMax=5.85f, float dMin=8.2f, const std::vector<int> indexChange=std::vector<int>());
explicit BRISK_Impl(int thresh, int octaves, const std::vector<float> &radiusList,
const std::vector<int> &numberList, float dMax=5.85f, float dMin=8.2f,
const std::vector<int> indexChange=std::vector<int>());
virtual ~BRISK_Impl(); virtual ~BRISK_Impl();
int descriptorSize() const int descriptorSize() const
...@@ -319,6 +323,18 @@ BRISK_Impl::BRISK_Impl(const std::vector<float> &radiusList, ...@@ -319,6 +323,18 @@ BRISK_Impl::BRISK_Impl(const std::vector<float> &radiusList,
octaves = 3; octaves = 3;
} }
BRISK_Impl::BRISK_Impl(int thresh,
int octaves_in,
const std::vector<float> &radiusList,
const std::vector<int> &numberList,
float dMax, float dMin,
const std::vector<int> indexChange)
{
generateKernel(radiusList, numberList, dMax, dMin, indexChange);
threshold = thresh;
octaves = octaves_in;
}
void void
BRISK_Impl::generateKernel(const std::vector<float> &radiusList, BRISK_Impl::generateKernel(const std::vector<float> &radiusList,
const std::vector<int> &numberList, const std::vector<int> &numberList,
...@@ -2318,4 +2334,11 @@ Ptr<BRISK> BRISK::create(const std::vector<float> &radiusList, const std::vector ...@@ -2318,4 +2334,11 @@ Ptr<BRISK> BRISK::create(const std::vector<float> &radiusList, const std::vector
return makePtr<BRISK_Impl>(radiusList, numberList, dMax, dMin, indexChange); return makePtr<BRISK_Impl>(radiusList, numberList, dMax, dMin, indexChange);
} }
Ptr<BRISK> BRISK::create(int thresh, int octaves, const std::vector<float> &radiusList,
const std::vector<int> &numberList, float dMax, float dMin,
const std::vector<int>& indexChange)
{
return makePtr<BRISK_Impl>(thresh, octaves, radiusList, numberList, dMax, dMin, indexChange);
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment