mirror of
https://github.com/opencv/opencv.git
synced 2026-07-31 00:03:03 +04:00
propagated some more fixes from 2.3 branch to the trunk
This commit is contained in:
@@ -9,7 +9,7 @@ represented as vectors in a multidimensional space. All objects that implement t
|
||||
descriptor extractors inherit the
|
||||
:ocv:class:`DescriptorExtractor` interface.
|
||||
|
||||
.. index:: DescriptorExtractor
|
||||
|
||||
|
||||
DescriptorExtractor
|
||||
-------------------
|
||||
@@ -47,13 +47,13 @@ distances between descriptors. Therefore, a collection of
|
||||
descriptors is represented as
|
||||
:ocv:class:`Mat` , where each row is a keypoint descriptor.
|
||||
|
||||
.. index:: DescriptorExtractor::compute
|
||||
|
||||
|
||||
DescriptorExtractor::compute
|
||||
--------------------------------
|
||||
.. ocv:function:: void DescriptorExtractor::compute( const Mat& image, vector<KeyPoint>& keypoints, Mat& descriptors ) const
|
||||
Computes 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).
|
||||
.. ocv:function:: void DescriptorExtractor::compute( const Mat& image, vector<KeyPoint>& keypoints, Mat& descriptors ) const
|
||||
|
||||
:param image: Image.
|
||||
|
||||
@@ -71,33 +71,33 @@ DescriptorExtractor::compute
|
||||
|
||||
:param descriptors: Descriptor collection. ``descriptors[i]`` are descriptors computed for a ``keypoints[i]`` set.
|
||||
|
||||
.. index:: DescriptorExtractor::read
|
||||
|
||||
|
||||
DescriptorExtractor::read
|
||||
-----------------------------
|
||||
.. ocv:function:: void DescriptorExtractor::read( const FileNode& fn )
|
||||
Reads the object of a descriptor extractor from a file node.
|
||||
|
||||
Reads the object of a descriptor extractor from a file node.
|
||||
.. ocv:function:: void DescriptorExtractor::read( const FileNode& fn )
|
||||
|
||||
:param fn: File node from which the detector is read.
|
||||
|
||||
.. index:: DescriptorExtractor::write
|
||||
|
||||
|
||||
DescriptorExtractor::write
|
||||
------------------------------
|
||||
.. ocv:function:: void DescriptorExtractor::write( FileStorage& fs ) const
|
||||
Writes the object of a descriptor extractor to a file storage.
|
||||
|
||||
Writes the object of a descriptor extractor to a file storage.
|
||||
.. ocv:function:: void DescriptorExtractor::write( FileStorage& fs ) const
|
||||
|
||||
:param fs: File storage where the detector is written.
|
||||
|
||||
.. index:: DescriptorExtractor::create
|
||||
|
||||
|
||||
DescriptorExtractor::create
|
||||
-------------------------------
|
||||
.. ocv:function:: Ptr<DescriptorExtractor> DescriptorExtractor::create( const string& descriptorExtractorType )
|
||||
Creates a descriptor extractor by name.
|
||||
|
||||
Creates a descriptor extractor by name.
|
||||
.. ocv:function:: Ptr<DescriptorExtractor> DescriptorExtractor::create( const string& descriptorExtractorType )
|
||||
|
||||
:param descriptorExtractorType: Descriptor extractor type.
|
||||
|
||||
@@ -112,9 +112,7 @@ A combined format is also supported: descriptor extractor adapter name ( ``"Oppo
|
||||
:ocv:class:`OpponentColorDescriptorExtractor` ) + descriptor extractor name (see above),
|
||||
for example: ``"OpponentSIFT"`` .
|
||||
|
||||
.. index:: SiftDescriptorExtractor
|
||||
|
||||
.. _SiftDescriptorExtractor:
|
||||
|
||||
SiftDescriptorExtractor
|
||||
-----------------------
|
||||
@@ -144,9 +142,7 @@ Wrapping class for computing descriptors by using the
|
||||
}
|
||||
|
||||
|
||||
.. index:: SurfDescriptorExtractor
|
||||
|
||||
.. _SurfDescriptorExtractor:
|
||||
|
||||
SurfDescriptorExtractor
|
||||
-----------------------
|
||||
@@ -170,9 +166,7 @@ Wrapping class for computing descriptors by using the
|
||||
}
|
||||
|
||||
|
||||
.. index:: OrbDescriptorExtractor
|
||||
|
||||
.. _OrbDescriptorExtractor:
|
||||
|
||||
OrbDescriptorExtractor
|
||||
---------------------------
|
||||
@@ -196,7 +190,7 @@ Wrapping class for computing descriptors by using the
|
||||
}
|
||||
|
||||
|
||||
.. index:: CalonderDescriptorExtractor
|
||||
|
||||
|
||||
CalonderDescriptorExtractor
|
||||
---------------------------
|
||||
@@ -220,10 +214,6 @@ Wrapping class for computing descriptors by using the
|
||||
}
|
||||
|
||||
|
||||
.. index:: OpponentColorDescriptorExtractor
|
||||
|
||||
.. _OpponentColorDescriptorExtractor:
|
||||
|
||||
OpponentColorDescriptorExtractor
|
||||
--------------------------------
|
||||
.. ocv:class:: OpponentColorDescriptorExtractor
|
||||
@@ -248,9 +238,6 @@ them into a single color descriptor. ::
|
||||
};
|
||||
|
||||
|
||||
.. index:: BriefDescriptorExtractor
|
||||
|
||||
.. _BriefDescriptorExtractor:
|
||||
|
||||
BriefDescriptorExtractor
|
||||
------------------------
|
||||
|
||||
@@ -9,10 +9,6 @@ that are represented as vectors in a multidimensional space. All objects that im
|
||||
descriptor matchers inherit the
|
||||
:ocv:class:`DescriptorMatcher` interface.
|
||||
|
||||
.. index:: DMatch
|
||||
|
||||
.. _DMatch:
|
||||
|
||||
DMatch
|
||||
------
|
||||
.. ocv:class:: DMatch
|
||||
@@ -42,10 +38,6 @@ train descriptor index, train image index, and distance between descriptors. ::
|
||||
};
|
||||
|
||||
|
||||
.. index:: DescriptorMatcher
|
||||
|
||||
.. _DescriptorMatcher:
|
||||
|
||||
DescriptorMatcher
|
||||
-----------------
|
||||
.. ocv:class:: DescriptorMatcher
|
||||
@@ -104,66 +96,67 @@ with an image set. ::
|
||||
};
|
||||
|
||||
|
||||
.. index:: DescriptorMatcher::add
|
||||
|
||||
DescriptorMatcher::add
|
||||
--------------------------
|
||||
.. ocv:function:: void add( const vector<Mat>& descriptors )
|
||||
Adds descriptors to train a descriptor collection. If the collection ``trainDescCollectionis`` is not empty, the new descriptors are added to existing train descriptors.
|
||||
|
||||
Adds descriptors to train a descriptor collection. If the collection ``trainDescCollectionis`` is not empty, the new descriptors are added to existing train descriptors.
|
||||
.. ocv:function:: void DescriptorMatcher::add( const vector<Mat>& descriptors )
|
||||
|
||||
:param descriptors: Descriptors to add. Each ``descriptors[i]`` is a set of descriptors from the same train image.
|
||||
|
||||
.. index:: DescriptorMatcher::getTrainDescriptors
|
||||
|
||||
DescriptorMatcher::getTrainDescriptors
|
||||
------------------------------------------
|
||||
.. ocv:function:: const vector<Mat>& getTrainDescriptors() const
|
||||
Returns a constant link to the train descriptor collection ``trainDescCollection`` .
|
||||
|
||||
.. ocv:function:: const vector<Mat>& DescriptorMatcher::getTrainDescriptors() const
|
||||
|
||||
|
||||
|
||||
Returns a constant link to the train descriptor collection ``trainDescCollection`` .
|
||||
|
||||
.. index:: DescriptorMatcher::clear
|
||||
|
||||
DescriptorMatcher::clear
|
||||
----------------------------
|
||||
Clears the train descriptor collection.
|
||||
|
||||
.. ocv:function:: void DescriptorMatcher::clear()
|
||||
|
||||
Clears the train descriptor collection.
|
||||
|
||||
.. index:: DescriptorMatcher::empty
|
||||
|
||||
DescriptorMatcher::empty
|
||||
----------------------------
|
||||
Returns true if there are no train descriptors in the collection.
|
||||
|
||||
.. ocv:function:: bool DescriptorMatcher::empty() const
|
||||
|
||||
Returns true if there are no train descriptors in the collection.
|
||||
|
||||
.. index:: DescriptorMatcher::isMaskSupported
|
||||
|
||||
DescriptorMatcher::isMaskSupported
|
||||
--------------------------------------
|
||||
Returns true if the descriptor matcher supports masking permissible matches.
|
||||
|
||||
.. ocv:function:: bool DescriptorMatcher::isMaskSupported()
|
||||
|
||||
Returns true if the descriptor matcher supports masking permissible matches.
|
||||
|
||||
.. index:: DescriptorMatcher::train
|
||||
|
||||
DescriptorMatcher::train
|
||||
----------------------------
|
||||
Trains a descriptor matcher
|
||||
|
||||
.. ocv:function:: void DescriptorMatcher::train()
|
||||
|
||||
Trains a descriptor matcher (for example, the flann index). In all methods to match, the method ``train()`` is run every time before matching. Some descriptor matchers (for example, ``BruteForceMatcher``) have an empty implementation of this method. Other matchers really train their inner structures (for example, ``FlannBasedMatcher`` trains ``flann::Index`` ).
|
||||
Trains a descriptor matcher (for example, the flann index). In all methods to match, the method ``train()`` is run every time before matching. Some descriptor matchers (for example, ``BruteForceMatcher``) have an empty implementation of this method. Other matchers really train their inner structures (for example, ``FlannBasedMatcher`` trains ``flann::Index`` ).
|
||||
|
||||
|
||||
.. index:: DescriptorMatcher::match
|
||||
|
||||
DescriptorMatcher::match
|
||||
----------------------------
|
||||
Finds the best match for each descriptor from a query set.
|
||||
|
||||
.. ocv:function:: void DescriptorMatcher::match( const Mat& queryDescriptors, const Mat& trainDescriptors, vector<DMatch>& matches, const Mat& mask=Mat() ) const
|
||||
|
||||
.. ocv:function:: void DescriptorMatcher::match( const Mat& queryDescriptors, vector<DMatch>& matches, const vector<Mat>& masks=vector<Mat>() )
|
||||
|
||||
Finds the best match for each descriptor from a query set.
|
||||
|
||||
:param queryDescriptors: Query set of descriptors.
|
||||
|
||||
:param trainDescriptors: Train set of descriptors. This set is not added to the train descriptors collection stored in the class object.
|
||||
@@ -176,16 +169,16 @@ DescriptorMatcher::match
|
||||
|
||||
In the first variant of this method, the train descriptors are passed as an input argument. In the second variant of the method, train descriptors collection that was set by ``DescriptorMatcher::add`` is used. Optional mask (or masks) can be passed to specify which query and training descriptors can be matched. Namely, ``queryDescriptors[i]`` can be matched with ``trainDescriptors[j]`` only if ``mask.at<uchar>(i,j)`` is non-zero.
|
||||
|
||||
.. index:: DescriptorMatcher::knnMatch
|
||||
|
||||
|
||||
DescriptorMatcher::knnMatch
|
||||
-------------------------------
|
||||
Finds the k best matches for each descriptor from a query set.
|
||||
|
||||
.. ocv:function:: void DescriptorMatcher::knnMatch( const Mat& queryDescriptors, const Mat& trainDescriptors, vector<vector<DMatch> >& matches, int k, const Mat& mask=Mat(), bool compactResult=false ) const
|
||||
|
||||
.. ocv:function:: void DescriptorMatcher::knnMatch( const Mat& queryDescriptors, vector<vector<DMatch> >& matches, int k, const vector<Mat>& masks=vector<Mat>(), bool compactResult=false )
|
||||
|
||||
Finds the k best matches for each descriptor from a query set.
|
||||
|
||||
:param queryDescriptors: Query set of descriptors.
|
||||
|
||||
:param trainDescriptors: Train set of descriptors. This set is not added to the train descriptors collection stored in the class object.
|
||||
@@ -202,16 +195,16 @@ DescriptorMatcher::knnMatch
|
||||
|
||||
These extended variants of :ocv:func:`DescriptorMatcher::match` methods find several best matches for each query descriptor. The matches are returned in the distance increasing order. See :ocv:func:`DescriptorMatcher::match` for the details about query and train descriptors.
|
||||
|
||||
.. index:: DescriptorMatcher::radiusMatch
|
||||
|
||||
|
||||
DescriptorMatcher::radiusMatch
|
||||
----------------------------------
|
||||
For each query descriptor, finds the training descriptors not farther than the specified distance.
|
||||
|
||||
.. ocv:function:: void DescriptorMatcher::radiusMatch( const Mat& queryDescriptors, const Mat& trainDescriptors, vector<vector<DMatch> >& matches, float maxDistance, const Mat& mask=Mat(), bool compactResult=false ) const
|
||||
|
||||
.. ocv:function:: void DescriptorMatcher::radiusMatch( const Mat& queryDescriptors, vector<vector<DMatch> >& matches, float maxDistance, const vector<Mat>& masks=vector<Mat>(), bool compactResult=false )
|
||||
|
||||
For each query descriptor, finds the training descriptors not farther than the specified distance.
|
||||
|
||||
:param queryDescriptors: Query set of descriptors.
|
||||
|
||||
:param trainDescriptors: Train set of descriptors. This set is not added to the train descriptors collection stored in the class object.
|
||||
@@ -228,23 +221,23 @@ DescriptorMatcher::radiusMatch
|
||||
|
||||
For each query descriptor, the methods find such training descriptors that the distance between the query descriptor and the training descriptor is equal or smaller than ``maxDistance``. Found matches are returned in the distance increasing order.
|
||||
|
||||
.. index:: DescriptorMatcher::clone
|
||||
|
||||
|
||||
DescriptorMatcher::clone
|
||||
----------------------------
|
||||
.. ocv:function:: Ptr<DescriptorMatcher> DescriptorMatcher::clone( bool emptyTrainData ) const
|
||||
Clones the matcher.
|
||||
|
||||
Clones the matcher.
|
||||
.. ocv:function:: Ptr<DescriptorMatcher> DescriptorMatcher::clone( bool emptyTrainData ) const
|
||||
|
||||
:param emptyTrainData: If ``emptyTrainData`` is false, the method creates a deep copy of the object, that is, copies both parameters and train data. If ``emptyTrainData`` is true, the method creates an object copy with the current parameters but with empty train data.
|
||||
|
||||
.. index:: DescriptorMatcher::create
|
||||
|
||||
|
||||
DescriptorMatcher::create
|
||||
-----------------------------
|
||||
.. ocv:function:: Ptr<DescriptorMatcher> DescriptorMatcher::create( const string& descriptorMatcherType )
|
||||
Creates a descriptor matcher of a given type with the default parameters (using default constructor).
|
||||
|
||||
Creates a descriptor matcher of a given type with the default parameters (using default constructor).
|
||||
.. ocv:function:: Ptr<DescriptorMatcher> DescriptorMatcher::create( const string& descriptorMatcherType )
|
||||
|
||||
:param descriptorMatcherType: Descriptor matcher type. Now the following matcher types are supported:
|
||||
|
||||
@@ -259,9 +252,9 @@ DescriptorMatcher::create
|
||||
*
|
||||
``FlannBased``
|
||||
|
||||
.. index:: BruteForceMatcher
|
||||
|
||||
.. _BruteForceMatcher:
|
||||
|
||||
|
||||
|
||||
BruteForceMatcher
|
||||
-----------------
|
||||
@@ -345,9 +338,9 @@ For efficiency, ``BruteForceMatcher`` is used as a template parameterized with t
|
||||
};
|
||||
|
||||
|
||||
.. index:: FlannBasedMatcher
|
||||
|
||||
.. _FlannBasedMatcher:
|
||||
|
||||
|
||||
|
||||
FlannBasedMatcher
|
||||
-----------------
|
||||
|
||||
@@ -12,57 +12,60 @@ KeyPoint
|
||||
--------
|
||||
.. ocv:class:: KeyPoint
|
||||
|
||||
Data structure for salient point detectors. ::
|
||||
Data structure for salient point detectors.
|
||||
|
||||
class KeyPoint
|
||||
{
|
||||
public:
|
||||
// the default constructor
|
||||
KeyPoint() : pt(0,0), size(0), angle(-1), response(0), octave(0),
|
||||
class_id(-1) {}
|
||||
// the full constructor
|
||||
KeyPoint(Point2f _pt, float _size, float _angle=-1,
|
||||
float _response=0, int _octave=0, int _class_id=-1)
|
||||
: pt(_pt), size(_size), angle(_angle), response(_response),
|
||||
octave(_octave), class_id(_class_id) {}
|
||||
// another form of the full constructor
|
||||
KeyPoint(float x, float y, float _size, float _angle=-1,
|
||||
float _response=0, int _octave=0, int _class_id=-1)
|
||||
: pt(x, y), size(_size), angle(_angle), response(_response),
|
||||
octave(_octave), class_id(_class_id) {}
|
||||
// converts vector of keypoints to vector of points
|
||||
static void convert(const std::vector<KeyPoint>& keypoints,
|
||||
std::vector<Point2f>& points2f,
|
||||
const std::vector<int>& keypointIndexes=std::vector<int>());
|
||||
// converts vector of points to the vector of keypoints, where each
|
||||
// keypoint is assigned to the same size and the same orientation
|
||||
static void convert(const std::vector<Point2f>& points2f,
|
||||
std::vector<KeyPoint>& keypoints,
|
||||
float size=1, float response=1, int octave=0,
|
||||
int class_id=-1);
|
||||
.. ocv:member:: Point2f pt
|
||||
|
||||
coordinates of the keypoint
|
||||
|
||||
.. ocv:member:: float size
|
||||
|
||||
diameter of the meaningful keypoint neighborhood
|
||||
|
||||
.. ocv:member:: float angle
|
||||
|
||||
computed orientation of the keypoint (-1 if not applicable)
|
||||
|
||||
.. ocv:member:: float response
|
||||
|
||||
the response by which the most strong keypoints have been selected. Can be used for further sorting or subsampling
|
||||
|
||||
.. ocv:member:: int octave
|
||||
|
||||
octave (pyramid layer) from which the keypoint has been extracted
|
||||
|
||||
.. ocv:member:: int class_id
|
||||
|
||||
object id that can be used to clustered keypoints by an object they belong to
|
||||
|
||||
// computes overlap for pair of keypoints;
|
||||
// overlap is a ratio between area of keypoint regions intersection and
|
||||
// area of keypoint regions union (now keypoint region is a circle)
|
||||
static float overlap(const KeyPoint& kp1, const KeyPoint& kp2);
|
||||
KeyPoint::KeyPoint
|
||||
------------------
|
||||
The keypoint constructors
|
||||
|
||||
Point2f pt; // coordinates of the keypoints
|
||||
float size; // diameter of the meaningful keypoint neighborhood
|
||||
float angle; // computed orientation of the keypoint (-1 if not applicable)
|
||||
float response; // the response by which the most strong keypoints
|
||||
// have been selected. Can be used for further sorting
|
||||
// or subsampling
|
||||
int octave; // octave (pyramid layer) from which the keypoint has been extracted
|
||||
int class_id; // object class (if the keypoints need to be clustered by
|
||||
// an object they belong to)
|
||||
};
|
||||
.. ocv:function:: KeyPoint::KeyPoint()
|
||||
|
||||
// writes vector of keypoints to the file storage
|
||||
void write(FileStorage& fs, const string& name, const vector<KeyPoint>& keypoints);
|
||||
// reads vector of keypoints from the specified file storage node
|
||||
void read(const FileNode& node, CV_OUT vector<KeyPoint>& keypoints);
|
||||
.. ocv:function:: KeyPoint::KeyPoint(Point2f _pt, float _size, float _angle=-1, float _response=0, int _octave=0, int _class_id=-1)
|
||||
|
||||
.. ocv:function:: KeyPoint::KeyPoint(float x, float y, float _size, float _angle=-1, float _response=0, int _octave=0, int _class_id=-1)
|
||||
|
||||
.. ocv:pyfunction:: cv2.KeyPoint(x, y, _size[, _angle[, _response[, _octave[, _class_id]]]]) -> <KeyPoint object>
|
||||
|
||||
:param x: x-coordinate of the keypoint
|
||||
|
||||
:param y: y-coordinate of the keypoint
|
||||
|
||||
:param _pt: x & y coordinates of the keypoint
|
||||
|
||||
:param _size: keypoint diameter
|
||||
|
||||
:param _angle: keypoint orientation
|
||||
|
||||
:param _response: keypoint detector response on the keypoint (that is, strength of the keypoint)
|
||||
|
||||
:param _octave: pyramid octave in which the keypoint has been detected
|
||||
|
||||
:param _class_id: object id
|
||||
|
||||
..
|
||||
|
||||
FeatureDetector
|
||||
---------------
|
||||
@@ -93,9 +96,9 @@ Abstract base class for 2D image feature detectors. ::
|
||||
|
||||
FeatureDetector::detect
|
||||
---------------------------
|
||||
.. ocv:function:: void FeatureDetector::detect( const Mat& image, vector<KeyPoint>& keypoints, const Mat& mask=Mat() ) const
|
||||
Detects keypoints in an image (first variant) or image set (second variant).
|
||||
|
||||
Detects keypoints in an image (first variant) or image set (second variant).
|
||||
.. ocv:function:: void FeatureDetector::detect( const Mat& image, vector<KeyPoint>& keypoints, const Mat& mask=Mat() ) const
|
||||
|
||||
:param image: Image.
|
||||
|
||||
@@ -113,25 +116,25 @@ FeatureDetector::detect
|
||||
|
||||
FeatureDetector::read
|
||||
-------------------------
|
||||
.. ocv:function:: void FeatureDetector::read( const FileNode& fn )
|
||||
Reads a feature detector object from a file node.
|
||||
|
||||
Reads a feature detector object from a file node.
|
||||
.. ocv:function:: void FeatureDetector::read( const FileNode& fn )
|
||||
|
||||
:param fn: File node from which the detector is read.
|
||||
|
||||
FeatureDetector::write
|
||||
--------------------------
|
||||
.. ocv:function:: void FeatureDetector::write( FileStorage& fs ) const
|
||||
Writes a feature detector object to a file storage.
|
||||
|
||||
Writes a feature detector object to a file storage.
|
||||
.. ocv:function:: void FeatureDetector::write( FileStorage& fs ) const
|
||||
|
||||
:param fs: File storage where the detector is written.
|
||||
|
||||
FeatureDetector::create
|
||||
---------------------------
|
||||
.. ocv:function:: Ptr<FeatureDetector> FeatureDetector::create( const string& detectorType )
|
||||
Creates a feature detector by its name.
|
||||
|
||||
Creates a feature detector by its name.
|
||||
.. ocv:function:: Ptr<FeatureDetector> FeatureDetector::create( const string& detectorType )
|
||||
|
||||
:param detectorType: Feature detector type.
|
||||
|
||||
@@ -457,12 +460,11 @@ Example of creating ``DynamicAdaptedFeatureDetector`` : ::
|
||||
new FastAdjuster(20,true)));
|
||||
|
||||
|
||||
|
||||
DynamicAdaptedFeatureDetector::DynamicAdaptedFeatureDetector
|
||||
----------------------------------------------------------------
|
||||
.. ocv:function:: DynamicAdaptedFeatureDetector::DynamicAdaptedFeatureDetector( const Ptr<AdjusterAdapter>& adjuster, int min_features, int max_features, int max_iters )
|
||||
The constructor
|
||||
|
||||
Constructs the class.
|
||||
.. ocv:function:: DynamicAdaptedFeatureDetector::DynamicAdaptedFeatureDetector( const Ptr<AdjusterAdapter>& adjuster, int min_features, int max_features, int max_iters )
|
||||
|
||||
:param adjuster: :ocv:class:`AdjusterAdapter` that detects features and adjusts parameters.
|
||||
|
||||
@@ -497,9 +499,9 @@ See
|
||||
|
||||
AdjusterAdapter::tooFew
|
||||
---------------------------
|
||||
.. ocv:function:: void AdjusterAdapter::tooFew(int min, int n_detected)
|
||||
Adjusts the detector parameters to detect more features.
|
||||
|
||||
Adjusts the detector parameters to detect more features.
|
||||
.. ocv:function:: void AdjusterAdapter::tooFew(int min, int n_detected)
|
||||
|
||||
:param min: Minimum desired number of features.
|
||||
|
||||
@@ -514,9 +516,9 @@ Example: ::
|
||||
|
||||
AdjusterAdapter::tooMany
|
||||
----------------------------
|
||||
.. ocv:function:: void AdjusterAdapter::tooMany(int max, int n_detected)
|
||||
Adjusts the detector parameters to detect less features.
|
||||
|
||||
Adjusts the detector parameters to detect less features.
|
||||
.. ocv:function:: void AdjusterAdapter::tooMany(int max, int n_detected)
|
||||
|
||||
:param max: Maximum desired number of features.
|
||||
|
||||
@@ -532,9 +534,9 @@ Example: ::
|
||||
|
||||
AdjusterAdapter::good
|
||||
-------------------------
|
||||
.. ocv:function:: bool AdjusterAdapter::good() const
|
||||
Returns false if the detector parameters cannot be adjusted any more.
|
||||
|
||||
Returns false if the detector parameters cannot be adjusted any more.
|
||||
.. ocv:function:: bool AdjusterAdapter::good() const
|
||||
|
||||
Example: ::
|
||||
|
||||
@@ -545,6 +547,8 @@ Example: ::
|
||||
|
||||
AdjusterAdapter::create
|
||||
-------------------------
|
||||
Creates an adjuster adapter by name
|
||||
|
||||
.. ocv:function:: Ptr<AdjusterAdapter> AdjusterAdapter::create( const string& detectorType )
|
||||
|
||||
Creates an adjuster adapter by name ``detectorType``. The detector name is the same as in :ocv:func:`FeatureDetector::create`, but now supports ``"FAST"``, ``"STAR"``, and ``"SURF"`` only.
|
||||
|
||||
@@ -11,7 +11,7 @@ Every descriptor with the
|
||||
:ocv:class:`VectorDescriptorMatcher` ).
|
||||
There are descriptors such as the One-way descriptor and Ferns that have the ``GenericDescriptorMatcher`` interface implemented but do not support ``DescriptorExtractor``.
|
||||
|
||||
.. index:: GenericDescriptorMatcher
|
||||
|
||||
|
||||
GenericDescriptorMatcher
|
||||
------------------------
|
||||
@@ -79,68 +79,69 @@ Abstract interface for extracting and matching a keypoint descriptor. There are
|
||||
};
|
||||
|
||||
|
||||
.. index:: GenericDescriptorMatcher::add
|
||||
|
||||
|
||||
GenericDescriptorMatcher::add
|
||||
---------------------------------
|
||||
.. ocv:function:: void GenericDescriptorMatcher::add( const vector<Mat>& images, vector<vector<KeyPoint> >& keypoints )
|
||||
Adds images and their keypoints to the training collection stored in the class instance.
|
||||
|
||||
Adds images and their keypoints to the training collection stored in the class instance.
|
||||
.. ocv:function:: void GenericDescriptorMatcher::add( const vector<Mat>& images, vector<vector<KeyPoint> >& keypoints )
|
||||
|
||||
:param images: Image collection.
|
||||
|
||||
:param keypoints: Point collection. It is assumed that ``keypoints[i]`` are keypoints detected in the image ``images[i]`` .
|
||||
|
||||
.. index:: GenericDescriptorMatcher::getTrainImages
|
||||
|
||||
|
||||
GenericDescriptorMatcher::getTrainImages
|
||||
--------------------------------------------
|
||||
Returns a train image collection.
|
||||
|
||||
.. ocv:function:: const vector<Mat>& GenericDescriptorMatcher::getTrainImages() const
|
||||
|
||||
Returns a train image collection.
|
||||
|
||||
.. index:: GenericDescriptorMatcher::getTrainKeypoints
|
||||
|
||||
GenericDescriptorMatcher::getTrainKeypoints
|
||||
-----------------------------------------------
|
||||
Returns a train keypoints collection.
|
||||
|
||||
.. ocv:function:: const vector<vector<KeyPoint> >& GenericDescriptorMatcher::getTrainKeypoints() const
|
||||
|
||||
Returns a train keypoints collection.
|
||||
|
||||
.. index:: GenericDescriptorMatcher::clear
|
||||
|
||||
GenericDescriptorMatcher::clear
|
||||
-----------------------------------
|
||||
Clears a train collection (images and keypoints).
|
||||
|
||||
.. ocv:function:: void GenericDescriptorMatcher::clear()
|
||||
|
||||
Clears a train collection (images and keypoints).
|
||||
|
||||
.. index:: GenericDescriptorMatcher::train
|
||||
|
||||
GenericDescriptorMatcher::train
|
||||
-----------------------------------
|
||||
Trains descriptor matcher
|
||||
|
||||
.. ocv:function:: void GenericDescriptorMatcher::train()
|
||||
|
||||
Trains an object, for example, a tree-based structure, to extract descriptors or to optimize descriptors matching.
|
||||
Prepares descriptor matcher, for example, creates a tree-based structure, to extract descriptors or to optimize descriptors matching.
|
||||
|
||||
.. index:: GenericDescriptorMatcher::isMaskSupported
|
||||
|
||||
GenericDescriptorMatcher::isMaskSupported
|
||||
---------------------------------------------
|
||||
Returns ``true`` if a generic descriptor matcher supports masking permissible matches.
|
||||
|
||||
.. ocv:function:: void GenericDescriptorMatcher::isMaskSupported()
|
||||
|
||||
Returns ``true`` if a generic descriptor matcher supports masking permissible matches.
|
||||
|
||||
.. index:: GenericDescriptorMatcher::classify
|
||||
|
||||
GenericDescriptorMatcher::classify
|
||||
--------------------------------------
|
||||
Classifies keypoints from a query set.
|
||||
|
||||
.. ocv:function:: void GenericDescriptorMatcher::classify( const Mat& queryImage, vector<KeyPoint>& queryKeypoints, const Mat& trainImage, vector<KeyPoint>& trainKeypoints ) const
|
||||
|
||||
.. ocv:function:: void GenericDescriptorMatcher::classify( const Mat& queryImage, vector<KeyPoint>& queryKeypoints )
|
||||
|
||||
Classifies keypoints from a query set.
|
||||
|
||||
:param queryImage: Query image.
|
||||
|
||||
:param queryKeypoints: Keypoints from a query image.
|
||||
@@ -159,15 +160,15 @@ The methods do the following:
|
||||
#.
|
||||
Set the ``class_id`` field of each keypoint from the query set to ``class_id`` of the corresponding keypoint from the training set.
|
||||
|
||||
.. index:: GenericDescriptorMatcher::match
|
||||
|
||||
|
||||
GenericDescriptorMatcher::match
|
||||
-----------------------------------
|
||||
.. ocv:function:: void GenericDescriptorMatcher::match( const Mat& queryImage, vector<KeyPoint>& queryKeypoints, const Mat& trainImage, vector<KeyPoint>& trainKeypoints, vector<DMatch>& matches, const Mat& mask=Mat() ) const
|
||||
Finds the best match in the training set for each keypoint from the query set.
|
||||
|
||||
.. ocv:function:: void GenericDescriptorMatcher::match( const Mat& queryImage, vector<KeyPoint>& queryKeypoints, vector<DMatch>& matches, const vector<Mat>& masks=vector<Mat>() )
|
||||
.. ocv:function:: void GenericDescriptorMatcher::match( const Mat& queryImage, vector<KeyPoint>& queryKeypoints, const Mat& trainImage, vector<KeyPoint>& trainKeypoints, vector<DMatch>& matches, const Mat& mask=Mat() ) const
|
||||
|
||||
Finds the best match in the training set for each keypoint from the query set.
|
||||
.. ocv:function:: void GenericDescriptorMatcher::match( const Mat& queryImage, vector<KeyPoint>& queryKeypoints, vector<DMatch>& matches, const vector<Mat>& masks=vector<Mat>() )
|
||||
|
||||
:param queryImage: Query image.
|
||||
|
||||
@@ -185,61 +186,57 @@ GenericDescriptorMatcher::match
|
||||
|
||||
The methods find the best match for each query keypoint. In the first variant of the method, a train image and its keypoints are the input arguments. In the second variant, query keypoints are matched to the internally stored training collection that can be built using the ``GenericDescriptorMatcher::add`` method. Optional mask (or masks) can be passed to specify which query and training descriptors can be matched. Namely, ``queryKeypoints[i]`` can be matched with ``trainKeypoints[j]`` only if ``mask.at<uchar>(i,j)`` is non-zero.
|
||||
|
||||
.. index:: GenericDescriptorMatcher::knnMatch
|
||||
|
||||
|
||||
GenericDescriptorMatcher::knnMatch
|
||||
--------------------------------------
|
||||
Finds the ``k`` best matches for each query keypoint.
|
||||
|
||||
.. ocv:function:: void GenericDescriptorMatcher::knnMatch( const Mat& queryImage, vector<KeyPoint>& queryKeypoints, const Mat& trainImage, vector<KeyPoint>& trainKeypoints, vector<vector<DMatch> >& matches, int k, const Mat& mask=Mat(), bool compactResult=false ) const
|
||||
|
||||
.. ocv:function:: void GenericDescriptorMatcher::knnMatch( const Mat& queryImage, vector<KeyPoint>& queryKeypoints, vector<vector<DMatch> >& matches, int k, const vector<Mat>& masks=vector<Mat>(), bool compactResult=false )
|
||||
|
||||
Finds the ``k`` best matches for each query keypoint.
|
||||
|
||||
The methods are extended variants of ``GenericDescriptorMatch::match``. The parameters are similar, and the the semantics is similar to ``DescriptorMatcher::knnMatch``. But this class does not require explicitly computed keypoint descriptors.
|
||||
|
||||
.. index:: GenericDescriptorMatcher::radiusMatch
|
||||
|
||||
|
||||
GenericDescriptorMatcher::radiusMatch
|
||||
-----------------------------------------
|
||||
For each query keypoint, finds the training keypoints not farther than the specified distance.
|
||||
|
||||
.. ocv:function:: void GenericDescriptorMatcher::radiusMatch( const Mat& queryImage, vector<KeyPoint>& queryKeypoints, const Mat& trainImage, vector<KeyPoint>& trainKeypoints, vector<vector<DMatch> >& matches, float maxDistance, const Mat& mask=Mat(), bool compactResult=false ) const
|
||||
|
||||
.. ocv:function:: void GenericDescriptorMatcher::radiusMatch( const Mat& queryImage, vector<KeyPoint>& queryKeypoints, vector<vector<DMatch> >& matches, float maxDistance, const vector<Mat>& masks=vector<Mat>(), bool compactResult=false )
|
||||
|
||||
For each query keypoint, finds the training keypoints not farther than the specified distance.
|
||||
|
||||
The methods are similar to ``DescriptorMatcher::radius``. But this class does not require explicitly computed keypoint descriptors.
|
||||
|
||||
.. index:: GenericDescriptorMatcher::read
|
||||
|
||||
|
||||
GenericDescriptorMatcher::read
|
||||
----------------------------------
|
||||
Reads a matcher object from a file node.
|
||||
|
||||
.. ocv:function:: void GenericDescriptorMatcher::read( const FileNode& fn )
|
||||
|
||||
Reads a matcher object from a file node.
|
||||
|
||||
.. index:: GenericDescriptorMatcher::write
|
||||
|
||||
GenericDescriptorMatcher::write
|
||||
-----------------------------------
|
||||
Writes a match object to a file storage.
|
||||
|
||||
.. ocv:function:: void GenericDescriptorMatcher::write( FileStorage& fs ) const
|
||||
|
||||
Writes a match object to a file storage.
|
||||
|
||||
.. index:: GenericDescriptorMatcher::clone
|
||||
|
||||
GenericDescriptorMatcher::clone
|
||||
-----------------------------------
|
||||
.. ocv:function:: Ptr<GenericDescriptorMatcher> GenericDescriptorMatcher::clone( bool emptyTrainData ) const
|
||||
Clones the matcher.
|
||||
|
||||
Clones the matcher.
|
||||
.. ocv:function:: Ptr<GenericDescriptorMatcher> GenericDescriptorMatcher::clone( bool emptyTrainData ) const
|
||||
|
||||
:param emptyTrainData: If ``emptyTrainData`` is false, the method creates a deep copy of the object, that is, copies
|
||||
both parameters and train data. If ``emptyTrainData`` is true, the method creates an object copy with the current parameters
|
||||
but with empty train data.
|
||||
|
||||
.. index:: OneWayDescriptorMatcher
|
||||
|
||||
.. _OneWayDescriptorMatcher:
|
||||
|
||||
OneWayDescriptorMatcher
|
||||
-----------------------
|
||||
@@ -298,7 +295,7 @@ Wrapping class for computing, matching, and classifying descriptors using the
|
||||
};
|
||||
|
||||
|
||||
.. index:: FernDescriptorMatcher
|
||||
|
||||
|
||||
FernDescriptorMatcher
|
||||
---------------------
|
||||
@@ -355,9 +352,7 @@ Wrapping class for computing, matching, and classifying descriptors using the
|
||||
};
|
||||
|
||||
|
||||
.. index:: VectorDescriptorMatcher
|
||||
|
||||
.. _VectorDescriptorMatcher:
|
||||
|
||||
VectorDescriptorMatcher
|
||||
-----------------------
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
Drawing Function of Keypoints and Matches
|
||||
=========================================
|
||||
|
||||
.. index:: drawMatches
|
||||
|
||||
|
||||
drawMatches
|
||||
---------------
|
||||
Draws the found matches of keypoints from two images.
|
||||
|
||||
.. ocv:function:: void drawMatches( const Mat& img1, const vector<KeyPoint>& keypoints1, const Mat& img2, const vector<KeyPoint>& keypoints2, const vector<DMatch>& matches1to2, Mat& outImg, const Scalar& matchColor=Scalar::all(-1), const Scalar& singlePointColor=Scalar::all(-1), const vector<char>& matchesMask=vector<char>(), int flags=DrawMatchesFlags::DEFAULT )
|
||||
|
||||
.. ocv:function:: void drawMatches( const Mat& img1, const vector<KeyPoint>& keypoints1, const Mat& img2, const vector<KeyPoint>& keypoints2, const vector<vector<DMatch> >& matches1to2, Mat& outImg, const Scalar& matchColor=Scalar::all(-1), const Scalar& singlePointColor=Scalar::all(-1), const vector<vector<char>>& matchesMask= vector<vector<char> >(), int flags=DrawMatchesFlags::DEFAULT )
|
||||
|
||||
Draws the found matches of keypoints from two images.
|
||||
|
||||
|
||||
:param img1: First source image.
|
||||
|
||||
@@ -59,13 +59,13 @@ This function draws matches of keypoints from two images in the output image. Ma
|
||||
|
||||
..
|
||||
|
||||
.. index:: drawKeypoints
|
||||
|
||||
|
||||
drawKeypoints
|
||||
-----------------
|
||||
.. ocv:function:: void drawKeypoints( const Mat& image, const vector<KeyPoint>& keypoints, Mat& outImg, const Scalar& color=Scalar::all(-1), int flags=DrawMatchesFlags::DEFAULT )
|
||||
Draws keypoints.
|
||||
|
||||
Draws keypoints.
|
||||
.. ocv:function:: void drawKeypoints( const Mat& image, const vector<KeyPoint>& keypoints, Mat& outImg, const Scalar& color=Scalar::all(-1), int flags=DrawMatchesFlags::DEFAULT )
|
||||
|
||||
:param image: Source image.
|
||||
|
||||
|
||||
@@ -3,13 +3,11 @@ Feature Detection and Description
|
||||
|
||||
.. highlight:: cpp
|
||||
|
||||
.. index:: FAST
|
||||
|
||||
FAST
|
||||
--------
|
||||
.. ocv:function:: void FAST( const Mat& image, vector<KeyPoint>& keypoints, int threshold, bool nonmaxSupression=true )
|
||||
Detects corners using the FAST algorithm
|
||||
|
||||
Detects corners using the FAST algorithm by E. Rosten (*Machine Learning for High-speed Corner Detection*, 2006).
|
||||
.. ocv:function:: void FAST( const Mat& image, vector<KeyPoint>& keypoints, int threshold, bool nonmaxSupression=true )
|
||||
|
||||
:param image: Image where keypoints (corners) are detected.
|
||||
|
||||
@@ -19,9 +17,8 @@ FAST
|
||||
|
||||
:param nonmaxSupression: If it is true, non-maximum supression is applied to detected corners (keypoints).
|
||||
|
||||
.. index:: MSER
|
||||
Detects corners using the FAST algorithm by E. Rosten (*Machine Learning for High-speed Corner Detection*, 2006).
|
||||
|
||||
.. _MSER:
|
||||
|
||||
MSER
|
||||
----
|
||||
@@ -48,46 +45,53 @@ Maximally stable extremal region extractor. ::
|
||||
The class encapsulates all the parameters of the MSER extraction algorithm (see
|
||||
http://en.wikipedia.org/wiki/Maximally_stable_extremal_regions). Also see http://opencv.willowgarage.com/wiki/documentation/cpp/features2d/MSER for usefull comments and parameters description.
|
||||
|
||||
.. index:: StarDetector
|
||||
|
||||
.. _StarDetector:
|
||||
|
||||
StarDetector
|
||||
------------
|
||||
.. ocv:class:: StarDetector
|
||||
|
||||
Class implementing the ``Star`` keypoint detector. ::
|
||||
Class implementing the ``Star`` keypoint detector, a modified version of the ``CenSurE`` keypoint detector described in [Agrawal08]_.
|
||||
|
||||
class StarDetector : CvStarDetectorParams
|
||||
{
|
||||
public:
|
||||
// default constructor
|
||||
StarDetector();
|
||||
// the full constructor that initializes all the algorithm parameters:
|
||||
// maxSize - maximum size of the features. The following
|
||||
// values of the parameter are supported:
|
||||
// 4, 6, 8, 11, 12, 16, 22, 23, 32, 45, 46, 64, 90, 128
|
||||
// responseThreshold - threshold for the approximated laplacian,
|
||||
// used to eliminate weak features. The larger it is,
|
||||
// the less features will be retrieved
|
||||
// lineThresholdProjected - another threshold for the laplacian to
|
||||
// eliminate edges
|
||||
// lineThresholdBinarized - another threshold for the feature
|
||||
// size to eliminate edges.
|
||||
// The larger the 2nd threshold, the more points you get.
|
||||
StarDetector(int maxSize, int responseThreshold,
|
||||
int lineThresholdProjected,
|
||||
int lineThresholdBinarized,
|
||||
int suppressNonmaxSize);
|
||||
.. [Agrawal08] Agrawal, M. and Konolige, K. and Blas, M.R. "CenSurE: Center Surround Extremas for Realtime Feature Detection and Matching", ECCV08, 2008
|
||||
|
||||
// finds keypoints in an image
|
||||
void operator()(const Mat& image, vector<KeyPoint>& keypoints) const;
|
||||
};
|
||||
StarDetector::StarDetector
|
||||
--------------------------
|
||||
The Star Detector constructor
|
||||
|
||||
The class implements a modified version of the ``CenSurE`` keypoint detector described in
|
||||
[Agrawal08].
|
||||
.. ocv:function:: StarDetector::StarDetector()
|
||||
|
||||
.. ocv:function:: StarDetector::StarDetector(int maxSize, int responseThreshold, int lineThresholdProjected, int lineThresholdBinarized, int suppressNonmaxSize)
|
||||
|
||||
.. ocv:pyfunction:: cv2.StarDetector(maxSize, responseThreshold, lineThresholdProjected, lineThresholdBinarized, suppressNonmaxSize) -> <StarDetector object>
|
||||
|
||||
:param maxSize: maximum size of the features. The following values are supported: 4, 6, 8, 11, 12, 16, 22, 23, 32, 45, 46, 64, 90, 128. In the case of a different value the result is undefined.
|
||||
|
||||
:param responseThreshold: threshold for the approximated laplacian, used to eliminate weak features. The larger it is, the less features will be retrieved
|
||||
|
||||
:param lineThresholdProjected: another threshold for the laplacian to eliminate edges
|
||||
|
||||
:param lineThresholdBinarized: yet another threshold for the feature size to eliminate edges. The larger the 2nd threshold, the more points you get.
|
||||
|
||||
StarDetector::operator()
|
||||
------------------------
|
||||
Finds keypoints in an image
|
||||
|
||||
.. ocv:function:: void StarDetector::operator()(const Mat& image, vector<KeyPoint>& keypoints)
|
||||
|
||||
.. ocv:pyfunction:: cv2.StarDetector.detect(image) -> keypoints
|
||||
|
||||
.. ocv:cfunction:: CvSeq* cvGetStarKeypoints( const CvArr* image, CvMemStorage* storage, CvStarDetectorParams params=cvStarDetectorParams() )
|
||||
|
||||
.. ocv:pyoldfunction:: cv.GetStarKeypoints(image, storage, params)-> keypoints
|
||||
|
||||
:param image: The input 8-bit grayscale image
|
||||
|
||||
:param keypoints: The output vector of keypoints
|
||||
|
||||
:param storage: The memory storage used to store the keypoints (OpenCV 1.x API only)
|
||||
|
||||
:param params: The algorithm parameters stored in ``CvStarDetectorParams`` (OpenCV 1.x API only)
|
||||
|
||||
.. index:: SIFT
|
||||
|
||||
SIFT
|
||||
----
|
||||
@@ -175,45 +179,89 @@ Class for extracting keypoints and computing descriptors using the Scale Invaria
|
||||
};
|
||||
|
||||
|
||||
.. index:: SURF
|
||||
|
||||
|
||||
SURF
|
||||
----
|
||||
.. ocv:class:: SURF
|
||||
|
||||
Class for extracting Speeded Up Robust Features from an image. ::
|
||||
Class for extracting Speeded Up Robust Features from an image [Bay06]_. The class is derived from ``CvSURFParams`` structure, which specifies the algorithm parameters:
|
||||
|
||||
class SURF : public CvSURFParams
|
||||
{
|
||||
public:
|
||||
// c:function::default constructor
|
||||
SURF();
|
||||
// constructor that initializes all the algorithm parameters
|
||||
SURF(double _hessianThreshold, int _nOctaves=4,
|
||||
int _nOctaveLayers=2, bool _extended=false);
|
||||
// returns the number of elements in each descriptor (64 or 128)
|
||||
int descriptorSize() const;
|
||||
// detects keypoints using fast multi-scale Hessian detector
|
||||
void operator()(const Mat& img, const Mat& mask,
|
||||
vector<KeyPoint>& keypoints) const;
|
||||
// detects keypoints and computes the SURF descriptors for them;
|
||||
// output vector "descriptors" stores elements of descriptors and has size
|
||||
// equal descriptorSize()*keypoints.size() as each descriptor is
|
||||
// descriptorSize() elements of this vector.
|
||||
void operator()(const Mat& img, const Mat& mask,
|
||||
vector<KeyPoint>& keypoints,
|
||||
vector<float>& descriptors,
|
||||
bool useProvidedKeypoints=false) const;
|
||||
};
|
||||
|
||||
The class implements the Speeded Up Robust Features descriptor
|
||||
[Bay06].
|
||||
There is a fast multi-scale Hessian keypoint detector that can be used to find keypoints
|
||||
(default option). But the descriptors can be also computed for the user-specified keypoints.
|
||||
The algorithm can be used for object tracking and localization, image stitching, and so on. See the ``find_obj.cpp`` demo in the OpenCV samples directory.
|
||||
.. ocv:member:: int extended
|
||||
|
||||
* 0 means that the basic descriptors (64 elements each) shall be computed
|
||||
* 1 means that the extended descriptors (128 elements each) shall be computed
|
||||
|
||||
.. ocv:member:: int upright
|
||||
|
||||
* 0 means that detector computes orientation of each feature.
|
||||
* 1 means that the orientation is not computed (which is much, much faster). For example, if you match images from a stereo pair, or do image stitching, the matched features likely have very similar angles, and you can speed up feature extraction by setting ``upright=1``.
|
||||
|
||||
.. ocv:member:: double hessianThreshold
|
||||
|
||||
Threshold for the keypoint detector. Only features, whose hessian is larger than ``hessianThreshold`` are retained by the detector. Therefore, the larger the value, the less keypoints you will get. A good default value could be from 300 to 500, depending from the image contrast.
|
||||
|
||||
.. ocv:member:: int nOctaves
|
||||
|
||||
The number of a gaussian pyramid octaves that the detector uses. It is set to 4 by default. If you want to get very large features, use the larger value. If you want just small features, decrease it.
|
||||
|
||||
.. ocv:member:: int nOctaveLayers
|
||||
|
||||
The number of images within each octave of a gaussian pyramid. It is set to 2 by default.
|
||||
|
||||
|
||||
.. index:: ORB
|
||||
.. [Bay06] Bay, H. and Tuytelaars, T. and Van Gool, L. "SURF: Speeded Up Robust Features", 9th European Conference on Computer Vision, 2006
|
||||
|
||||
|
||||
SURF::SURF
|
||||
----------
|
||||
The SURF extractor constructors.
|
||||
|
||||
.. ocv:function:: SURF::SURF()
|
||||
|
||||
.. ocv:function:: SURF::SURF(double hessianThreshold, int nOctaves=4, int nOctaveLayers=2, bool extended=false, bool upright=false)
|
||||
|
||||
.. ocv:pyfunction:: cv2.SURF(_hessianThreshold[, _nOctaves[, _nOctaveLayers[, _extended[, _upright]]]]) -> <SURF object>
|
||||
|
||||
:param hessianThreshold: Threshold for hessian keypoint detector used in SURF.
|
||||
|
||||
:param nOctaves: Number of pyramid octaves the keypoint detector will use.
|
||||
|
||||
:param nOctaveLayers: Number of octave layers within each octave.
|
||||
|
||||
:param extended: Extended descriptor flag (true - use extended 128-element descriptors; false - use 64-element descriptors).
|
||||
|
||||
:param upright: Up-right or rotated features flag (true - do not compute orientation of features; false - compute orientation).
|
||||
|
||||
|
||||
SURF::operator()
|
||||
----------------
|
||||
Detects keypoints and computes SURF descriptors for them.
|
||||
|
||||
.. ocv:function:: void SURF::operator()(const Mat& image, const Mat& mask, vector<KeyPoint>& keypoints)
|
||||
.. ocv:function:: void SURF::operator()(const Mat& image, const Mat& mask, vector<KeyPoint>& keypoints, vector<float>& descriptors, bool useProvidedKeypoints=false)
|
||||
|
||||
.. ocv:pyfunction:: cv2.SURF.detect(img, mask) -> keypoints
|
||||
.. ocv:pyfunction:: cv2.SURF.detect(img, mask[, useProvidedKeypoints]) -> keypoints, descriptors
|
||||
|
||||
.. ocv:cfunction:: void cvExtractSURF( const CvArr* image, const CvArr* mask, CvSeq** keypoints, CvSeq** descriptors, CvMemStorage* storage, CvSURFParams params )
|
||||
|
||||
.. ocv:pyoldfunction:: cv.ExtractSURF(image, mask, storage, params)-> (keypoints, descriptors)
|
||||
|
||||
:param image: Input 8-bit grayscale image
|
||||
|
||||
:param mask: Optional input mask that marks the regions where we should detect features.
|
||||
|
||||
:param keypoints: The input/output vector of keypoints
|
||||
|
||||
:param descriptors: The output concatenated vectors of descriptors. Each descriptor is 64- or 128-element vector, as returned by ``SURF::descriptorSize()``. So the total size of ``descriptors`` will be ``keypoints.size()*descriptorSize()``.
|
||||
|
||||
:param useProvidedKeypoints: Boolean flag. If it is true, the keypoint detector is not run. Instead, the provided vector of keypoints is used and the algorithm just computes their descriptors.
|
||||
|
||||
:param storage: Memory storage for the output keypoints and descriptors in OpenCV 1.x API.
|
||||
|
||||
:param params: SURF algorithm parameters in OpenCV 1.x API.
|
||||
|
||||
|
||||
ORB
|
||||
----
|
||||
@@ -269,7 +317,7 @@ Class for extracting ORB features and descriptors from an image. ::
|
||||
The class implements ORB.
|
||||
|
||||
|
||||
.. index:: RandomizedTree
|
||||
|
||||
|
||||
|
||||
RandomizedTree
|
||||
@@ -344,13 +392,13 @@ Class containing a base structure for ``RTreeClassifier``. ::
|
||||
void estimateQuantPercForPosteriors(float perc[2]);
|
||||
};
|
||||
|
||||
.. index:: RandomizedTree::train
|
||||
|
||||
|
||||
RandomizedTree::train
|
||||
-------------------------
|
||||
.. ocv:function:: void train(std::vector<BaseKeypoint> const& base_set, RNG& rng, PatchGenerator& make_patch, int depth, int views, size_t reduced_num_dim, int num_quant_bits)
|
||||
Trains a randomized tree using an input set of keypoints.
|
||||
|
||||
Trains a randomized tree using an input set of keypoints.
|
||||
.. ocv:function:: void train(std::vector<BaseKeypoint> const& base_set, RNG& rng, PatchGenerator& make_patch, int depth, int views, size_t reduced_num_dim, int num_quant_bits)
|
||||
|
||||
.. ocv:function:: void train(std::vector<BaseKeypoint> const& base_set, RNG& rng, PatchGenerator& make_patch, int depth, int views, size_t reduced_num_dim, int num_quant_bits)
|
||||
|
||||
@@ -368,37 +416,37 @@ RandomizedTree::train
|
||||
|
||||
:param num_quant_bits: Number of bits used for quantization.
|
||||
|
||||
.. index:: RandomizedTree::read
|
||||
|
||||
|
||||
RandomizedTree::read
|
||||
------------------------
|
||||
Reads a pre-saved randomized tree from a file or stream.
|
||||
|
||||
.. ocv:function:: read(const char* file_name, int num_quant_bits)
|
||||
|
||||
.. ocv:function:: read(std::istream &is, int num_quant_bits)
|
||||
|
||||
Reads a pre-saved randomized tree from a file or stream.
|
||||
|
||||
:param file_name: Name of the file that contains randomized tree data.
|
||||
|
||||
:param is: Input stream associated with the file that contains randomized tree data.
|
||||
|
||||
:param num_quant_bits: Number of bits used for quantization.
|
||||
|
||||
.. index:: RandomizedTree::write
|
||||
|
||||
|
||||
RandomizedTree::write
|
||||
-------------------------
|
||||
Writes the current randomized tree to a file or stream.
|
||||
|
||||
.. ocv:function:: void write(const char* file_name) const
|
||||
|
||||
Writes the current randomized tree to a file or stream.
|
||||
|
||||
.. ocv:function:: void write(std::ostream \&os) const
|
||||
.. ocv:function:: void write(std::ostream &os) const
|
||||
|
||||
:param file_name: Name of the file where randomized tree data is stored.
|
||||
|
||||
:param is: Output stream associated with the file where randomized tree data is stored.
|
||||
|
||||
.. index:: RandomizedTree::applyQuantization
|
||||
|
||||
|
||||
RandomizedTree::applyQuantization
|
||||
-------------------------------------
|
||||
@@ -408,9 +456,6 @@ RandomizedTree::applyQuantization
|
||||
|
||||
:param num_quant_bits: Number of bits used for quantization.
|
||||
|
||||
.. index:: RTreeNode
|
||||
|
||||
.. _RTreeNode:
|
||||
|
||||
RTreeNode
|
||||
---------
|
||||
@@ -436,9 +481,7 @@ Class containing a base structure for ``RandomizedTree``. ::
|
||||
}
|
||||
};
|
||||
|
||||
.. index:: RTreeClassifier
|
||||
|
||||
.. _RTreeClassifier:
|
||||
|
||||
RTreeClassifier
|
||||
---------------
|
||||
@@ -508,13 +551,13 @@ Class containing ``RTreeClassifier``. It represents the Calonder descriptor orig
|
||||
bool keep_floats_;
|
||||
};
|
||||
|
||||
.. index:: RTreeClassifier::train
|
||||
|
||||
|
||||
RTreeClassifier::train
|
||||
--------------------------
|
||||
.. ocv:function:: void train(vector<BaseKeypoint> const& base_set, RNG& rng, int num_trees = RTreeClassifier::DEFAULT_TREES, int depth = DEFAULT_DEPTH, int views = DEFAULT_VIEWS, size_t reduced_num_dim = DEFAULT_REDUCED_NUM_DIM, int num_quant_bits = DEFAULT_NUM_QUANT_BITS, bool print_status = true)
|
||||
Trains a randomized tree classifier using an input set of keypoints.
|
||||
|
||||
Trains a randomized tree classifier using an input set of keypoints.
|
||||
.. ocv:function:: void train(vector<BaseKeypoint> const& base_set, RNG& rng, int num_trees = RTreeClassifier::DEFAULT_TREES, int depth = DEFAULT_DEPTH, int views = DEFAULT_VIEWS, size_t reduced_num_dim = DEFAULT_REDUCED_NUM_DIM, int num_quant_bits = DEFAULT_NUM_QUANT_BITS, bool print_status = true)
|
||||
|
||||
.. ocv:function:: void train(vector<BaseKeypoint> const& base_set, RNG& rng, PatchGenerator& make_patch, int num_trees = RTreeClassifier::DEFAULT_TREES, int depth = DEFAULT_DEPTH, int views = DEFAULT_VIEWS, size_t reduced_num_dim = DEFAULT_REDUCED_NUM_DIM, int num_quant_bits = DEFAULT_NUM_QUANT_BITS, bool print_status = true)
|
||||
|
||||
@@ -536,41 +579,41 @@ RTreeClassifier::train
|
||||
|
||||
:param print_status: Current status of training printed on the console.
|
||||
|
||||
.. index:: RTreeClassifier::getSignature
|
||||
|
||||
|
||||
RTreeClassifier::getSignature
|
||||
---------------------------------
|
||||
.. ocv:function:: void getSignature(IplImage *patch, uchar *sig)
|
||||
Returns a signature for an image patch.
|
||||
|
||||
Returns a signature for an image patch.
|
||||
.. ocv:function:: void getSignature(IplImage *patch, uchar *sig)
|
||||
|
||||
.. ocv:function:: void getSignature(IplImage *patch, float *sig)
|
||||
|
||||
:param patch: Image patch to calculate the signature for.
|
||||
:param sig: Output signature (array dimension is ``reduced_num_dim)`` .
|
||||
|
||||
.. index:: RTreeClassifier::getSparseSignature
|
||||
|
||||
|
||||
RTreeClassifier::getSparseSignature
|
||||
---------------------------------------
|
||||
Returns a sparse signature for an image patch
|
||||
|
||||
.. ocv:function:: void getSparseSignature(IplImage *patch, float *sig, float thresh)
|
||||
|
||||
Returns a signature for an image patch similarly to ``getSignature`` but uses a threshold for removing all signature elements below the threshold so that the signature is compressed.
|
||||
|
||||
:param patch: Image patch to calculate the signature for.
|
||||
|
||||
:param sig: Output signature (array dimension is ``reduced_num_dim)`` .
|
||||
|
||||
:param thresh: Threshold used for compressing the signature.
|
||||
|
||||
.. index:: RTreeClassifier::countNonZeroElements
|
||||
Returns a signature for an image patch similarly to ``getSignature`` but uses a threshold for removing all signature elements below the threshold so that the signature is compressed.
|
||||
|
||||
|
||||
RTreeClassifier::countNonZeroElements
|
||||
-----------------------------------------
|
||||
.. ocv:function:: static int countNonZeroElements(float *vec, int n, double tol=1e-10)
|
||||
Returns the number of non-zero elements in an input array.
|
||||
|
||||
Returns the number of non-zero elements in an input array.
|
||||
.. ocv:function:: static int countNonZeroElements(float *vec, int n, double tol=1e-10)
|
||||
|
||||
:param vec: Input vector containing float elements.
|
||||
|
||||
@@ -578,13 +621,13 @@ RTreeClassifier::countNonZeroElements
|
||||
|
||||
:param tol: Threshold used for counting elements. All elements less than ``tol`` are considered as zero elements.
|
||||
|
||||
.. index:: RTreeClassifier::read
|
||||
|
||||
|
||||
RTreeClassifier::read
|
||||
-------------------------
|
||||
.. ocv:function:: read(const char* file_name)
|
||||
Reads a pre-saved ``RTreeClassifier`` from a file or stream.
|
||||
|
||||
Reads a pre-saved ``RTreeClassifier`` from a file or stream.
|
||||
.. ocv:function:: read(const char* file_name)
|
||||
|
||||
.. ocv:function:: read(std::istream& is)
|
||||
|
||||
@@ -592,13 +635,13 @@ RTreeClassifier::read
|
||||
|
||||
:param is: Input stream associated with the file that contains randomized tree data.
|
||||
|
||||
.. index:: RTreeClassifier::write
|
||||
|
||||
|
||||
RTreeClassifier::write
|
||||
--------------------------
|
||||
.. ocv:function:: void write(const char* file_name) const
|
||||
Writes the current ``RTreeClassifier`` to a file or stream.
|
||||
|
||||
Writes the current ``RTreeClassifier`` to a file or stream.
|
||||
.. ocv:function:: void write(const char* file_name) const
|
||||
|
||||
.. ocv:function:: void write(std::ostream &os) const
|
||||
|
||||
@@ -606,13 +649,13 @@ RTreeClassifier::write
|
||||
|
||||
:param os: Output stream associated with the file where randomized tree data is stored.
|
||||
|
||||
.. index:: RTreeClassifier::setQuantization
|
||||
|
||||
|
||||
RTreeClassifier::setQuantization
|
||||
------------------------------------
|
||||
.. ocv:function:: void setQuantization(int num_quant_bits)
|
||||
Applies quantization to the current randomized tree.
|
||||
|
||||
Applies quantization to the current randomized tree.
|
||||
.. ocv:function:: void setQuantization(int num_quant_bits)
|
||||
|
||||
:param num_quant_bits: Number of bits used for quantization.
|
||||
|
||||
|
||||
@@ -34,42 +34,41 @@ Lixin Fan, Jutta Willamowski, Cedric Bray, 2004. ::
|
||||
|
||||
BOWTrainer::add
|
||||
-------------------
|
||||
.. ocv:function:: void BOWTrainer::add( const Mat& descriptors )
|
||||
Adds descriptors to a training set.
|
||||
|
||||
Adds descriptors to a training set. The training set is clustered using ``clustermethod`` to construct the vocabulary.
|
||||
.. ocv:function:: void BOWTrainer::add( const Mat& descriptors )
|
||||
|
||||
:param descriptors: Descriptors to add to a training set. Each row of the ``descriptors`` matrix is a descriptor.
|
||||
|
||||
The training set is clustered using ``clustermethod`` to construct the vocabulary.
|
||||
|
||||
BOWTrainer::getDescriptors
|
||||
------------------------------
|
||||
Returns a training set of descriptors.
|
||||
|
||||
.. ocv:function:: const vector<Mat>& BOWTrainer::getDescriptors() const
|
||||
|
||||
Returns a training set of descriptors.
|
||||
|
||||
.. index:: BOWTrainer::descripotorsCount
|
||||
|
||||
BOWTrainer::descripotorsCount
|
||||
---------------------------------
|
||||
Returns the count of all descriptors stored in the training set.
|
||||
|
||||
.. ocv:function:: const vector<Mat>& BOWTrainer::descripotorsCount() const
|
||||
|
||||
Returns the count of all descriptors stored in the training set.
|
||||
|
||||
.. index:: BOWTrainer::cluster
|
||||
|
||||
BOWTrainer::cluster
|
||||
-----------------------
|
||||
.. ocv:function:: Mat BOWTrainer::cluster() const
|
||||
Clusters train descriptors.
|
||||
|
||||
Clusters train descriptors. The vocabulary consists of cluster centers. So, this method returns the vocabulary. In the first variant of the method, train descriptors stored in the object are clustered. In the second variant, input descriptors are clustered.
|
||||
.. ocv:function:: Mat BOWTrainer::cluster() const
|
||||
|
||||
.. ocv:function:: Mat BOWTrainer::cluster( const Mat& descriptors ) const
|
||||
|
||||
:param descriptors: Descriptors to cluster. Each row of the ``descriptors`` matrix is a descriptor. Descriptors are not added to the inner train descriptor set.
|
||||
|
||||
.. index:: BOWKMeansTrainer
|
||||
|
||||
.. _BOWKMeansTrainer:
|
||||
The vocabulary consists of cluster centers. So, this method returns the vocabulary. In the first variant of the method, train descriptors stored in the object are clustered. In the second variant, input descriptors are clustered.
|
||||
|
||||
BOWKMeansTrainer
|
||||
----------------
|
||||
@@ -94,7 +93,9 @@ BOWKMeansTrainer
|
||||
};
|
||||
|
||||
BOWKMeansTrainer::BOWKMeansTrainer
|
||||
----------------
|
||||
----------------------------------
|
||||
The constructor.
|
||||
|
||||
.. ocv:function:: BOWKMeansTrainer::BOWKMeansTrainer( int clusterCount, const TermCriteria& termcrit=TermCriteria(), int attempts=3, int flags=KMEANS_PP_CENTERS );
|
||||
|
||||
See :ocv:func:`kmeans` function parameters.
|
||||
@@ -132,43 +133,43 @@ The class declaration is the following: ::
|
||||
};
|
||||
|
||||
|
||||
.. index:: BOWImgDescriptorExtractor::BOWImgDescriptorExtractor
|
||||
|
||||
|
||||
BOWImgDescriptorExtractor::BOWImgDescriptorExtractor
|
||||
--------------------------------------------------------
|
||||
.. ocv:function:: BOWImgDescriptorExtractor::BOWImgDescriptorExtractor( const Ptr<DescriptorExtractor>& dextractor, const Ptr<DescriptorMatcher>& dmatcher )
|
||||
The constructor.
|
||||
|
||||
Constructs a class.
|
||||
.. ocv:function:: BOWImgDescriptorExtractor::BOWImgDescriptorExtractor( const Ptr<DescriptorExtractor>& dextractor, const Ptr<DescriptorMatcher>& dmatcher )
|
||||
|
||||
:param dextractor: Descriptor extractor that is used to compute descriptors for an input image and its keypoints.
|
||||
|
||||
:param dmatcher: Descriptor matcher that is used to find the nearest word of the trained vocabulary for each keypoint descriptor of the image.
|
||||
|
||||
.. index:: BOWImgDescriptorExtractor::setVocabulary
|
||||
|
||||
|
||||
BOWImgDescriptorExtractor::setVocabulary
|
||||
--------------------------------------------
|
||||
.. ocv:function:: void BOWImgDescriptorExtractor::setVocabulary( const Mat& vocabulary )
|
||||
Sets a visual vocabulary.
|
||||
|
||||
Sets a visual vocabulary.
|
||||
.. ocv:function:: void BOWImgDescriptorExtractor::setVocabulary( const Mat& vocabulary )
|
||||
|
||||
:param vocabulary: Vocabulary (can be trained using the inheritor of :ocv:class:`BOWTrainer` ). Each row of the vocabulary is a visual word (cluster center).
|
||||
|
||||
.. index:: BOWImgDescriptorExtractor::getVocabulary
|
||||
|
||||
|
||||
BOWImgDescriptorExtractor::getVocabulary
|
||||
--------------------------------------------
|
||||
Returns the set vocabulary.
|
||||
|
||||
.. ocv:function:: const Mat& BOWImgDescriptorExtractor::getVocabulary() const
|
||||
|
||||
Returns the set vocabulary.
|
||||
|
||||
.. index:: BOWImgDescriptorExtractor::compute
|
||||
|
||||
BOWImgDescriptorExtractor::compute
|
||||
--------------------------------------
|
||||
.. ocv:function:: void BOWImgDescriptorExtractor::compute( const Mat& image, vector<KeyPoint>& keypoints, Mat& imgDescriptor, vector<vector<int> >* pointIdxsOfClusters=0, Mat* descriptors=0 )
|
||||
Computes an image descriptor using the set visual vocabulary.
|
||||
|
||||
Computes an image descriptor using the set visual vocabulary.
|
||||
.. ocv:function:: void BOWImgDescriptorExtractor::compute( const Mat& image, vector<KeyPoint>& keypoints, Mat& imgDescriptor, vector<vector<int> >* pointIdxsOfClusters=0, Mat* descriptors=0 )
|
||||
|
||||
:param image: Image, for which the descriptor is computed.
|
||||
|
||||
@@ -180,19 +181,19 @@ BOWImgDescriptorExtractor::compute
|
||||
|
||||
:param descriptors: Descriptors of the image keypoints that are returned if they are non-zero.
|
||||
|
||||
.. index:: BOWImgDescriptorExtractor::descriptorSize
|
||||
|
||||
|
||||
BOWImgDescriptorExtractor::descriptorSize
|
||||
---------------------------------------------
|
||||
Returns an image discriptor size if the vocabulary is set. Otherwise, it returns 0.
|
||||
|
||||
.. ocv:function:: int BOWImgDescriptorExtractor::descriptorSize() const
|
||||
|
||||
Returns an image discriptor size if the vocabulary is set. Otherwise, it returns 0.
|
||||
|
||||
.. index:: BOWImgDescriptorExtractor::descriptorType
|
||||
|
||||
BOWImgDescriptorExtractor::descriptorType
|
||||
---------------------------------------------
|
||||
Returns an image descriptor type.
|
||||
|
||||
.. ocv:function:: int BOWImgDescriptorExtractor::descriptorType() const
|
||||
|
||||
Returns an image descriptor type.
|
||||
|
||||
|
||||
@@ -398,6 +398,8 @@ private:
|
||||
//switch (sz)
|
||||
{
|
||||
//default:
|
||||
if( rotated_patterns_.empty() )
|
||||
rotated_patterns_ = OrbPatterns::generateRotatedPatterns();
|
||||
pattern_data = reinterpret_cast<int*> (rotated_patterns_[angle_idx].data);
|
||||
//break;
|
||||
}
|
||||
@@ -437,7 +439,7 @@ private:
|
||||
|
||||
};
|
||||
|
||||
std::vector<cv::Mat> ORB::OrbPatterns::rotated_patterns_ = OrbPatterns::generateRotatedPatterns();
|
||||
std::vector<cv::Mat> ORB::OrbPatterns::rotated_patterns_;
|
||||
|
||||
//this is the definition for BIT_PATTERN
|
||||
#include "orb_pattern.hpp"
|
||||
|
||||
Reference in New Issue
Block a user