From 0b1599d88a9b748256db01ac8fabc59c88229d7a Mon Sep 17 00:00:00 2001 From: Vincent Rabaud Date: Sun, 3 Feb 2013 14:31:15 +0100 Subject: [PATCH] write documentation for BRISK --- ...on_interfaces_of_descriptor_extractors.rst | 1 + ...mmon_interfaces_of_descriptor_matchers.rst | 2 +- ...common_interfaces_of_feature_detectors.rst | 1 + .../doc/feature_detection_and_description.rst | 52 +++++++++++++++++++ 4 files changed, 55 insertions(+), 1 deletion(-) diff --git a/modules/features2d/doc/common_interfaces_of_descriptor_extractors.rst b/modules/features2d/doc/common_interfaces_of_descriptor_extractors.rst index d785bafafa..63e56f6786 100644 --- a/modules/features2d/doc/common_interfaces_of_descriptor_extractors.rst +++ b/modules/features2d/doc/common_interfaces_of_descriptor_extractors.rst @@ -79,6 +79,7 @@ The current implementation supports the following types of a descriptor extracto * ``"SIFT"`` -- :ocv:class:`SIFT` * ``"SURF"`` -- :ocv:class:`SURF` * ``"ORB"`` -- :ocv:class:`ORB` + * ``"BRISK"`` -- :ocv:class:`BRISK` * ``"BRIEF"`` -- :ocv:class:`BriefDescriptorExtractor` A combined format is also supported: descriptor extractor adapter name ( ``"Opponent"`` -- diff --git a/modules/features2d/doc/common_interfaces_of_descriptor_matchers.rst b/modules/features2d/doc/common_interfaces_of_descriptor_matchers.rst index 533d2e9cae..8596ae43db 100644 --- a/modules/features2d/doc/common_interfaces_of_descriptor_matchers.rst +++ b/modules/features2d/doc/common_interfaces_of_descriptor_matchers.rst @@ -269,7 +269,7 @@ Brute-force matcher constructor. .. ocv:function:: BFMatcher::BFMatcher( int normType=NORM_L2, bool crossCheck=false ) - :param normType: One of ``NORM_L1``, ``NORM_L2``, ``NORM_HAMMING``, ``NORM_HAMMING2``. ``L1`` and ``L2`` norms are preferable choices for SIFT and SURF descriptors, ``NORM_HAMMING`` should be used with ORB and BRIEF, ``NORM_HAMMING2`` should be used with ORB when ``WTA_K==3`` or ``4`` (see ORB::ORB constructor description). + :param normType: One of ``NORM_L1``, ``NORM_L2``, ``NORM_HAMMING``, ``NORM_HAMMING2``. ``L1`` and ``L2`` norms are preferable choices for SIFT and SURF descriptors, ``NORM_HAMMING`` should be used with ORB, BRISK and BRIEF, ``NORM_HAMMING2`` should be used with ORB when ``WTA_K==3`` or ``4`` (see ORB::ORB constructor description). :param crossCheck: If it is false, this is will be default BFMatcher behaviour when it finds the k nearest neighbors for each query descriptor. If ``crossCheck==true``, then the ``knnMatch()`` method with ``k=1`` will only return pairs ``(i,j)`` such that for ``i-th`` query descriptor the ``j-th`` descriptor in the matcher's collection is the nearest and vice versa, i.e. the ``BFMathcher`` will only return consistent pairs. Such technique usually produces best results with minimal number of outliers when there are enough matches. This is alternative to the ratio test, used by D. Lowe in SIFT paper. diff --git a/modules/features2d/doc/common_interfaces_of_feature_detectors.rst b/modules/features2d/doc/common_interfaces_of_feature_detectors.rst index 8a1fa8c001..8804bdeba7 100644 --- a/modules/features2d/doc/common_interfaces_of_feature_detectors.rst +++ b/modules/features2d/doc/common_interfaces_of_feature_detectors.rst @@ -127,6 +127,7 @@ The following detector types are supported: * ``"SIFT"`` -- :ocv:class:`SIFT` (nonfree module) * ``"SURF"`` -- :ocv:class:`SURF` (nonfree module) * ``"ORB"`` -- :ocv:class:`ORB` +* ``"BRISK"`` -- :ocv:class:`BRISK` * ``"MSER"`` -- :ocv:class:`MSER` * ``"GFTT"`` -- :ocv:class:`GoodFeaturesToTrackDetector` * ``"HARRIS"`` -- :ocv:class:`GoodFeaturesToTrackDetector` with Harris detector enabled diff --git a/modules/features2d/doc/feature_detection_and_description.rst b/modules/features2d/doc/feature_detection_and_description.rst index a6cf5a620a..a39dc68bf4 100644 --- a/modules/features2d/doc/feature_detection_and_description.rst +++ b/modules/features2d/doc/feature_detection_and_description.rst @@ -98,6 +98,58 @@ Finds keypoints in an image and computes their descriptors :param useProvidedKeypoints: If it is true, then the method will use the provided vector of keypoints instead of detecting them. +BRISK +----- +.. ocv:class:: BRISK : public Feature2D + +Class implementing the BRISK keypoint detector and descriptor extractor, described in [LCS11]_. + +.. [LCS11] Stefan Leutenegger, Margarita Chli and Roland Siegwart: BRISK: Binary Robust Invariant Scalable Keypoints. ICCV 2011: 2548-2555. + +BRISK::BRISK +------------ +The BRISK constructor + +.. ocv:function:: BRISK::BRISK(int thresh=30, int octaves=3, float patternScale=1.0f) + + :param thresh: FAST/AGAST detection threshold score. + + :param octaves: detection octaves. Use 0 to do single scale. + + :param patternScale: apply this scale to the pattern used for sampling the neighbourhood of a keypoint. + +BRISK::BRISK +------------ +The BRISK constructor for a custom pattern + +.. ocv:function:: BRISK::BRISK(std::vector &radiusList, std::vector &numberList, float dMax=5.85f, float dMin=8.2f, std::vector indexChange=std::vector()) + + :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 indexChanges: index remapping of the bits. + +BRISK::operator() +----------------- +Finds keypoints in an image and computes their descriptors + +.. ocv:function:: void BRISK::operator()(InputArray image, InputArray mask, vector& keypoints, OutputArray descriptors, bool useProvidedKeypoints=false ) const + + :param image: The input 8-bit grayscale image. + + :param mask: The operation mask. + + :param keypoints: The output vector of keypoints. + + :param descriptors: The output descriptors. Pass ``cv::noArray()`` if you do not need it. + + :param useProvidedKeypoints: If it is true, then the method will use the provided vector of keypoints instead of detecting them. + FREAK ----- .. ocv:class:: FREAK : public DescriptorExtractor