Merge pull request #20317 from sturkmen72:upd_fast_agast

pull/20608/head
Alexander Alekhin 3 years ago
commit 6b199bd1bb
  1. 26
      modules/features2d/include/opencv2/features2d.hpp
  2. 7
      modules/features2d/src/agast.cpp
  3. 8
      modules/features2d/src/fast.cpp

@ -516,7 +516,9 @@ public:
//! @addtogroup features2d_main //! @addtogroup features2d_main
//! @{ //! @{
/** @brief Wrapping class for feature detection using the FAST method. : /** @brief Wrapping class for feature detection using the FAST method.
Check @ref tutorial_py_fast "the corresponding tutorial" for more details.
*/ */
class CV_EXPORTS_W FastFeatureDetector : public Feature2D class CV_EXPORTS_W FastFeatureDetector : public Feature2D
{ {
@ -546,30 +548,23 @@ public:
CV_WRAP virtual String getDefaultName() const CV_OVERRIDE; CV_WRAP virtual String getDefaultName() const CV_OVERRIDE;
}; };
/** @overload */
CV_EXPORTS void FAST( InputArray image, CV_OUT std::vector<KeyPoint>& keypoints,
int threshold, bool nonmaxSuppression=true );
/** @brief Detects corners using the FAST algorithm /** @brief Detects corners using the FAST algorithm
@param image grayscale image where keypoints (corners) are detected. @param image grayscale image where keypoints (corners) are detected.
@param keypoints keypoints detected on the image. @param keypoints keypoints detected on the image.
@param threshold threshold on difference between intensity of the central pixel and pixels of a @param threshold threshold on difference between intensity of the central pixel and pixels of a
circle around this pixel. circle around this pixel.
@param nonmaxSuppression if true, non-maximum suppression is applied to detected corners @param nonmaxSuppression if true, non-maximum suppression is applied to detected keypoints (corners).
(keypoints).
@param type one of the three neighborhoods as defined in the paper: @param type one of the three neighborhoods as defined in the paper:
FastFeatureDetector::TYPE_9_16, FastFeatureDetector::TYPE_7_12, FastFeatureDetector::TYPE_9_16, FastFeatureDetector::TYPE_7_12,
FastFeatureDetector::TYPE_5_8 FastFeatureDetector::TYPE_5_8
Detects corners using the FAST algorithm by @cite Rosten06 . Detects corners using the FAST algorithm by @cite Rosten06 .
@note In Python API, types are given as cv.FAST_FEATURE_DETECTOR_TYPE_5_8, Check @ref tutorial_py_fast "the corresponding tutorial" for more details.
cv.FAST_FEATURE_DETECTOR_TYPE_7_12 and cv.FAST_FEATURE_DETECTOR_TYPE_9_16. For corner
detection, use cv.FAST.detect() method.
*/ */
CV_EXPORTS void FAST( InputArray image, CV_OUT std::vector<KeyPoint>& keypoints, CV_EXPORTS void FAST( InputArray image, CV_OUT std::vector<KeyPoint>& keypoints,
int threshold, bool nonmaxSuppression, FastFeatureDetector::DetectorType type ); int threshold, bool nonmaxSuppression=true, FastFeatureDetector::DetectorType type=FastFeatureDetector::TYPE_9_16 );
//! @} features2d_main //! @} features2d_main
@ -606,18 +601,13 @@ public:
CV_WRAP virtual String getDefaultName() const CV_OVERRIDE; CV_WRAP virtual String getDefaultName() const CV_OVERRIDE;
}; };
/** @overload */
CV_EXPORTS void AGAST( InputArray image, CV_OUT std::vector<KeyPoint>& keypoints,
int threshold, bool nonmaxSuppression=true );
/** @brief Detects corners using the AGAST algorithm /** @brief Detects corners using the AGAST algorithm
@param image grayscale image where keypoints (corners) are detected. @param image grayscale image where keypoints (corners) are detected.
@param keypoints keypoints detected on the image. @param keypoints keypoints detected on the image.
@param threshold threshold on difference between intensity of the central pixel and pixels of a @param threshold threshold on difference between intensity of the central pixel and pixels of a
circle around this pixel. circle around this pixel.
@param nonmaxSuppression if true, non-maximum suppression is applied to detected corners @param nonmaxSuppression if true, non-maximum suppression is applied to detected keypoints (corners).
(keypoints).
@param type one of the four neighborhoods as defined in the paper: @param type one of the four neighborhoods as defined in the paper:
AgastFeatureDetector::AGAST_5_8, AgastFeatureDetector::AGAST_7_12d, AgastFeatureDetector::AGAST_5_8, AgastFeatureDetector::AGAST_7_12d,
AgastFeatureDetector::AGAST_7_12s, AgastFeatureDetector::OAST_9_16 AgastFeatureDetector::AGAST_7_12s, AgastFeatureDetector::OAST_9_16
@ -629,7 +619,7 @@ Detects corners using the AGAST algorithm by @cite mair2010_agast .
*/ */
CV_EXPORTS void AGAST( InputArray image, CV_OUT std::vector<KeyPoint>& keypoints, CV_EXPORTS void AGAST( InputArray image, CV_OUT std::vector<KeyPoint>& keypoints,
int threshold, bool nonmaxSuppression, AgastFeatureDetector::DetectorType type ); int threshold, bool nonmaxSuppression=true, AgastFeatureDetector::DetectorType type=AgastFeatureDetector::OAST_9_16 );
/** @brief Wrapping class for feature detection using the goodFeaturesToTrack function. : /** @brief Wrapping class for feature detection using the goodFeaturesToTrack function. :
*/ */

@ -7934,13 +7934,6 @@ static void OAST_9_16(InputArray _img, std::vector<KeyPoint>& keypoints, int thr
#endif // !(defined __i386__ || defined(_M_IX86) || defined __x86_64__ || defined(_M_X64)) #endif // !(defined __i386__ || defined(_M_IX86) || defined __x86_64__ || defined(_M_X64))
void AGAST(InputArray _img, std::vector<KeyPoint>& keypoints, int threshold, bool nonmax_suppression)
{
CV_INSTRUMENT_REGION();
AGAST(_img, keypoints, threshold, nonmax_suppression, AgastFeatureDetector::OAST_9_16);
}
class AgastFeatureDetector_Impl CV_FINAL : public AgastFeatureDetector class AgastFeatureDetector_Impl CV_FINAL : public AgastFeatureDetector
{ {
public: public:

@ -524,14 +524,6 @@ void FAST(InputArray _img, std::vector<KeyPoint>& keypoints, int threshold, bool
} }
void FAST(InputArray _img, std::vector<KeyPoint>& keypoints, int threshold, bool nonmax_suppression)
{
CV_INSTRUMENT_REGION();
FAST(_img, keypoints, threshold, nonmax_suppression, FastFeatureDetector::TYPE_9_16);
}
class FastFeatureDetector_Impl CV_FINAL : public FastFeatureDetector class FastFeatureDetector_Impl CV_FINAL : public FastFeatureDetector
{ {
public: public:

Loading…
Cancel
Save