GridAdaptedFeature.patch
modules/features2d/include/opencv2/features2d/features2d.hpp (working copy) | ||
---|---|---|
508 | 508 |
* gridRows Grid rows count. |
509 | 509 |
* gridCols Grid column count. |
510 | 510 |
*/ |
511 |
CV_WRAP GridAdaptedFeatureDetector( const Ptr<FeatureDetector>& detector, |
|
511 |
CV_WRAP GridAdaptedFeatureDetector( const Ptr<FeatureDetector>& detector = 0,
|
|
512 | 512 |
int maxTotalKeypoints=1000, |
513 | 513 |
int gridRows=4, int gridCols=4 ); |
514 | 514 |
|
515 | 515 |
// TODO implement read/write |
516 | 516 |
virtual bool empty() const; |
517 | 517 | |
518 |
AlgorithmInfo* info() const; |
|
519 | ||
518 | 520 |
protected: |
519 | 521 |
virtual void detectImpl( const Mat& image, vector<KeyPoint>& keypoints, const Mat& mask=Mat() ) const; |
520 | 522 |
modules/features2d/src/features2d_init.cpp (working copy) | ||
---|---|---|
248 | 248 |
return &dense_info; |
249 | 249 |
} |
250 | 250 | |
251 |
static Algorithm* createGridAdapted() { return new GridAdaptedFeatureDetector; } |
|
252 |
static AlgorithmInfo grid_adapted_info("Feature2D.Grid", createGridAdapted); |
|
253 | ||
254 |
AlgorithmInfo* GridAdaptedFeatureDetector::info() const |
|
255 |
{ |
|
256 |
static volatile bool initialized = false; |
|
257 |
if( !initialized ) |
|
258 |
{ |
|
259 |
GridAdaptedFeatureDetector obj; |
|
260 |
grid_adapted_info.addParam(obj, "detector", (Ptr<Algorithm>&) obj.detector); |
|
261 |
grid_adapted_info.addParam(obj, "maxTotalKeypoints", obj.maxTotalKeypoints); |
|
262 |
grid_adapted_info.addParam(obj, "gridRows", obj.gridRows); |
|
263 |
grid_adapted_info.addParam(obj, "gridCols", obj.gridCols); |
|
264 | ||
265 |
initialized = true; |
|
266 |
} |
|
267 |
return &grid_adapted_info; |
|
268 |
} |
|
269 | ||
251 | 270 |
bool initModule_features2d(void) |
252 | 271 |
{ |
253 | 272 |
Ptr<Algorithm> brief = createBRIEF(), orb = createORB(), |