.. highlight:: cpp
-Extractors of keypoint descriptors in OpenCV have wrappers with common interface that enables to switch easily
+Extractors of keypoint descriptors in OpenCV have wrappers with a common interface that enables you to easily switch
between different algorithms solving the same problem. This section is devoted to computing descriptors
-that are represented as vectors in a multidimensional space. All objects that implement ''vector''
-descriptor extractors inherit
-:func:`DescriptorExtractor` interface.
+that are represented as vectors in a multidimensional space. All objects that implement the ``vector``
+descriptor extractors inherit the
+:ref:`DescriptorExtractor` interface.
.. index:: DescriptorExtractor
-------------------
.. c:type:: DescriptorExtractor
-Abstract base class for computing descriptors for image keypoints. ::
+Abstract base class for computing descriptors for image keypoints ::
class CV_EXPORTS DescriptorExtractor
{
};
-In this interface we assume a keypoint descriptor can be represented as a
-dense, fixed-dimensional vector of some basic type. Most descriptors used
-in practice follow this pattern, as it makes it very easy to compute
-distances between descriptors. Therefore we represent a collection of
-descriptors as a
-:func:`Mat` , where each row is one keypoint descriptor.
+In this interface, a keypoint descriptor can be represented as a
+dense, fixed-dimensional vector of a basic type. Most descriptors
+follow this pattern as it simplifies computing
+distances between descriptors. Therefore, a collection of
+descriptors is represented as
+:ref:`Mat` , where each row is a keypoint descriptor.
.. index:: DescriptorExtractor::compute
--------------------------------
.. c:function:: void DescriptorExtractor::compute( const Mat\& image, vector<KeyPoint>\& keypoints, Mat\& descriptors ) const
- Compute the descriptors for a set of keypoints detected in an image (first variant) or image set (second variant).
+ Computes the descriptors for a set of keypoints detected in an image (first variant) or image set (second variant).
- :param image: The image.
+ :param image: Image.
- :param keypoints: The keypoints. Keypoints for which a descriptor cannot be computed are removed.
+ :param keypoints: Keypoints. Keypoints for which a descriptor cannot be computed are removed.
- :param descriptors: The descriptors. Row i is the descriptor for keypoint i.
+ :param descriptors: Descriptors. Row i is the descriptor for keypoint i.
.. c:function:: void DescriptorExtractor::compute( const vector<Mat>\& images, vector<vector<KeyPoint> >\& keypoints, vector<Mat>\& descriptors ) const
- * **images** The image set.
+ :param images: Image set.
- * **keypoints** Input keypoints collection. keypoints[i] is keypoints
- detected in images[i]. Keypoints for which a descriptor
- can not be computed are removed.
+ :param keypoints: Input keypoints collection. ``keypoints[i]`` are keypoints
+ detected in ``images[i]`` . Keypoints for which a descriptor
+ cannot be computed are removed.
- * **descriptors** Descriptor collection. descriptors[i] are descriptors computed for
- a set keypoints[i].
+ :param descriptors: Descriptor collection. ``descriptors[i]`` are descriptors computed for a ``keypoints[i]`` set.
.. index:: DescriptorExtractor::read
-----------------------------
.. c:function:: void DescriptorExtractor::read( const FileNode\& fn )
- Read descriptor extractor object from file node.
+ Reads the object of a descriptor extractor from a file node.
- :param fn: File node from which detector will be read.
+ :param fn: File node from which the detector is read.
.. index:: DescriptorExtractor::write
------------------------------
.. c:function:: void DescriptorExtractor::write( FileStorage\& fs ) const
- Write descriptor extractor object to file storage.
+ Writes the object of a descriptor extractor to a file storage.
- :param fs: File storage in which detector will be written.
+ :param fs: File storage where the detector is written.
.. index:: DescriptorExtractor::create
DescriptorExtractor::create
-------------------------------
-:func:`DescriptorExtractor`
.. c:function:: Ptr<DescriptorExtractor> DescriptorExtractor::create( const string\& descriptorExtractorType )
- Descriptor extractor factory that creates of given type with default parameters (rather using default constructor).
+ Creates a descriptor extractor of a given type with the default parameters (using the default constructor).??
:param descriptorExtractorType: Descriptor extractor type.
-Now the following descriptor extractor types are supported:
+The current implementation supports the following types of a descriptor extractor:
- * ``"SIFT"`` -- :func:`SiftFeatureDetector`,
- * ``"SURF"`` -- :func:`SurfFeatureDetector`,
- * ``"BRIEF"`` -- :func:`BriefFeatureDetector` .
+ * ``"SIFT"`` -- :func:`SiftFeatureDetector`
+ * ``"SURF"`` -- :func:`SurfFeatureDetector`
+ * ``"BRIEF"`` -- :func:`BriefFeatureDetector`
-Also combined format is supported: descriptor extractor adapter name ( ``"Opponent"`` --
-:func:`OpponentColorDescriptorExtractor` ) + descriptor extractor name (see above),
-e.g. ``"OpponentSIFT"`` , etc.
+A combined format is also supported: descriptor extractor adapter name ( ``"Opponent"`` --
+:ref:`OpponentColorDescriptorExtractor` ) + descriptor extractor name (see above),
+for example, ``"OpponentSIFT"`` .
.. index:: SiftDescriptorExtractor
-----------------------
.. c:type:: SiftDescriptorExtractor
-Wrapping class for descriptors computing using
-:func:`SIFT` class. ::
+Wrapping class for descriptors computing using the
+:ref:`SIFT` class ::
class SiftDescriptorExtractor : public DescriptorExtractor
{
-----------------------
.. c:type:: SurfDescriptorExtractor
-Wrapping class for descriptors computing using
-:func:`SURF` class. ::
+Wrapping class for computing descriptors using the
+:ref:`SURF` class ::
class SurfDescriptorExtractor : public DescriptorExtractor
{
---------------------------
.. c:type:: CalonderDescriptorExtractor
-Wrapping class for descriptors computing using
-:func:`RTreeClassifier` class. ::
+Wrapping class for computing descriptors using the
+:ref:`RTreeClassifier` class ::
template<typename T>
class CalonderDescriptorExtractor : public DescriptorExtractor
--------------------------------
.. c:type:: OpponentColorDescriptorExtractor
-Adapts a descriptor extractor to compute descripors in Opponent Color Space
-(refer to van de Sande et al., CGIV 2008 "Color Descriptors for Object Category Recognition").
-Input RGB image is transformed in Opponent Color Space. Then unadapted descriptor extractor
-(set in constructor) computes descriptors on each of the three channel and concatenate
+Class adapting a descriptor extractor to compute descripors in the Opponent Color Space
+(refer to Van de Sande et al., CGIV 2008 *Color Descriptors for Object Category Recognition*).
+Input RGB image is transformed in the Opponent Color Space. Then, an unadapted descriptor extractor
+(set in the constructor) computes descriptors on each of three channels and concatenates
them into a single color descriptor. ::
class OpponentColorDescriptorExtractor : public DescriptorExtractor
------------------------
.. c:type:: BriefDescriptorExtractor
-Class for computing BRIEF descriptors described in paper of Calonder M., Lepetit V.,
-Strecha C., Fua P.: ''BRIEF: Binary Robust Independent Elementary Features.''
-11th European Conference on Computer Vision (ECCV), Heraklion, Crete. LNCS Springer, September 2010. ::
+Class for computing BRIEF descriptors described in a paper of Calonder M., Lepetit V.,
+Strecha C., Fua P. *BRIEF: Binary Robust Independent Elementary Features* ,
+11th European Conference on Computer Vision (ECCV), Heraklion, Crete. LNCS Springer, September 2010 ::
class BriefDescriptorExtractor : public DescriptorExtractor
{