mirror of https://github.com/opencv/opencv.git
Open Source Computer Vision Library
https://opencv.org/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
540 lines
24 KiB
540 lines
24 KiB
14 years ago
|
Feature Detection and Description
|
||
|
=================================
|
||
|
|
||
|
.. highlight:: cpp
|
||
|
|
||
14 years ago
|
|
||
14 years ago
|
|
||
13 years ago
|
gpu::FAST_GPU
|
||
|
-------------
|
||
|
.. ocv:class:: gpu::FAST_GPU
|
||
|
|
||
|
Class used for corner detection using the FAST algorithm. ::
|
||
|
|
||
|
class FAST_GPU
|
||
|
{
|
||
|
public:
|
||
|
enum
|
||
|
{
|
||
|
LOCATION_ROW = 0,
|
||
|
RESPONSE_ROW,
|
||
|
ROWS_COUNT
|
||
|
};
|
||
|
|
||
|
// all features have same size
|
||
|
static const int FEATURE_SIZE = 7;
|
||
|
|
||
13 years ago
|
explicit FAST_GPU(int threshold, bool nonmaxSupression = true,
|
||
13 years ago
|
double keypointsRatio = 0.05);
|
||
|
|
||
13 years ago
|
void operator ()(const GpuMat& image, const GpuMat& mask, GpuMat& keypoints);
|
||
|
void operator ()(const GpuMat& image, const GpuMat& mask,
|
||
13 years ago
|
std::vector<KeyPoint>& keypoints);
|
||
|
|
||
13 years ago
|
void downloadKeypoints(const GpuMat& d_keypoints,
|
||
13 years ago
|
std::vector<KeyPoint>& keypoints);
|
||
|
|
||
13 years ago
|
void convertKeypoints(const Mat& h_keypoints,
|
||
13 years ago
|
std::vector<KeyPoint>& keypoints);
|
||
|
|
||
|
void release();
|
||
|
|
||
|
bool nonmaxSupression;
|
||
|
|
||
|
int threshold;
|
||
|
|
||
|
double keypointsRatio;
|
||
|
|
||
|
int calcKeyPointsLocation(const GpuMat& image, const GpuMat& mask);
|
||
|
|
||
|
int getKeyPoints(GpuMat& keypoints);
|
||
|
};
|
||
|
|
||
|
|
||
|
The class ``FAST_GPU`` implements FAST corner detection algorithm.
|
||
|
|
||
|
.. seealso:: :ocv:func:`FAST`
|
||
|
|
||
|
|
||
|
|
||
|
gpu::FAST_GPU::FAST_GPU
|
||
|
-------------------------------------
|
||
|
Constructor.
|
||
|
|
||
|
.. ocv:function:: gpu::FAST_GPU::FAST_GPU(int threshold, bool nonmaxSupression = true, double keypointsRatio = 0.05)
|
||
|
|
||
|
:param threshold: Threshold on difference between intensity of the central pixel and pixels on a circle around this pixel.
|
||
|
|
||
13 years ago
|
:param nonmaxSupression: If it is true, non-maximum suppression is applied to detected corners (keypoints).
|
||
13 years ago
|
|
||
|
:param keypointsRatio: Inner buffer size for keypoints store is determined as (keypointsRatio * image_width * image_height).
|
||
|
|
||
|
|
||
|
|
||
|
gpu::FAST_GPU::operator ()
|
||
|
-------------------------------------
|
||
|
Finds the keypoints using FAST detector.
|
||
|
|
||
13 years ago
|
.. ocv:function:: void gpu::FAST_GPU::operator ()(const GpuMat& image, const GpuMat& mask, GpuMat& keypoints)
|
||
13 years ago
|
.. ocv:function:: void gpu::FAST_GPU::operator ()(const GpuMat& image, const GpuMat& mask, std::vector<KeyPoint>& keypoints)
|
||
|
|
||
|
:param image: Image where keypoints (corners) are detected. Only 8-bit grayscale images are supported.
|
||
|
|
||
|
:param mask: Optional input mask that marks the regions where we should detect features.
|
||
|
|
||
13 years ago
|
:param keypoints: The output vector of keypoints. Can be stored both in CPU and GPU memory. For GPU memory:
|
||
13 years ago
|
|
||
|
* keypoints.ptr<Vec2s>(LOCATION_ROW)[i] will contain location of i'th point
|
||
13 years ago
|
* keypoints.ptr<float>(RESPONSE_ROW)[i] will contain response of i'th point (if non-maximum suppression is applied)
|
||
13 years ago
|
|
||
|
|
||
|
|
||
|
gpu::FAST_GPU::downloadKeypoints
|
||
|
-------------------------------------
|
||
|
Download keypoints from GPU to CPU memory.
|
||
|
|
||
|
.. ocv:function:: void gpu::FAST_GPU::downloadKeypoints(const GpuMat& d_keypoints, std::vector<KeyPoint>& keypoints)
|
||
|
|
||
|
|
||
|
|
||
|
gpu::FAST_GPU::convertKeypoints
|
||
|
-------------------------------------
|
||
|
Converts keypoints from GPU representation to vector of ``KeyPoint``.
|
||
|
|
||
|
.. ocv:function:: void gpu::FAST_GPU::convertKeypoints(const Mat& h_keypoints, std::vector<KeyPoint>& keypoints)
|
||
|
|
||
|
|
||
|
|
||
|
gpu::FAST_GPU::release
|
||
|
-------------------------------------
|
||
|
Releases inner buffer memory.
|
||
|
|
||
|
.. ocv:function:: void gpu::FAST_GPU::release()
|
||
|
|
||
|
|
||
|
|
||
|
gpu::FAST_GPU::calcKeyPointsLocation
|
||
|
-------------------------------------
|
||
|
Find keypoints and compute it's response if ``nonmaxSupression`` is true.
|
||
|
|
||
13 years ago
|
.. ocv:function:: int gpu::FAST_GPU::calcKeyPointsLocation(const GpuMat& image, const GpuMat& mask)
|
||
13 years ago
|
|
||
|
:param image: Image where keypoints (corners) are detected. Only 8-bit grayscale images are supported.
|
||
|
|
||
|
:param mask: Optional input mask that marks the regions where we should detect features.
|
||
|
|
||
|
The function returns count of detected keypoints.
|
||
|
|
||
|
|
||
|
|
||
|
gpu::FAST_GPU::getKeyPoints
|
||
|
-------------------------------------
|
||
|
Gets final array of keypoints.
|
||
|
|
||
|
.. ocv:function:: int gpu::FAST_GPU::getKeyPoints(GpuMat& keypoints)
|
||
|
|
||
|
:param keypoints: The output vector of keypoints.
|
||
|
|
||
13 years ago
|
The function performs non-max suppression if needed and returns final count of keypoints.
|
||
13 years ago
|
|
||
|
|
||
|
|
||
|
gpu::ORB_GPU
|
||
|
-------------
|
||
|
.. ocv:class:: gpu::ORB_GPU
|
||
|
|
||
|
Class for extracting ORB features and descriptors from an image. ::
|
||
|
|
||
|
class ORB_GPU
|
||
|
{
|
||
|
public:
|
||
|
enum
|
||
|
{
|
||
|
X_ROW = 0,
|
||
|
Y_ROW,
|
||
|
RESPONSE_ROW,
|
||
|
ANGLE_ROW,
|
||
|
OCTAVE_ROW,
|
||
|
SIZE_ROW,
|
||
|
ROWS_COUNT
|
||
|
};
|
||
|
|
||
|
enum
|
||
|
{
|
||
|
DEFAULT_FAST_THRESHOLD = 20
|
||
|
};
|
||
|
|
||
13 years ago
|
explicit ORB_GPU(int nFeatures = 500, float scaleFactor = 1.2f,
|
||
|
int nLevels = 8, int edgeThreshold = 31,
|
||
|
int firstLevel = 0, int WTA_K = 2,
|
||
|
int scoreType = 0, int patchSize = 31);
|
||
13 years ago
|
|
||
13 years ago
|
void operator()(const GpuMat& image, const GpuMat& mask,
|
||
13 years ago
|
std::vector<KeyPoint>& keypoints);
|
||
|
void operator()(const GpuMat& image, const GpuMat& mask, GpuMat& keypoints);
|
||
|
|
||
13 years ago
|
void operator()(const GpuMat& image, const GpuMat& mask,
|
||
13 years ago
|
std::vector<KeyPoint>& keypoints, GpuMat& descriptors);
|
||
13 years ago
|
void operator()(const GpuMat& image, const GpuMat& mask,
|
||
13 years ago
|
GpuMat& keypoints, GpuMat& descriptors);
|
||
|
|
||
|
void downloadKeyPoints(GpuMat& d_keypoints, std::vector<KeyPoint>& keypoints);
|
||
|
|
||
|
void convertKeyPoints(Mat& d_keypoints, std::vector<KeyPoint>& keypoints);
|
||
|
|
||
|
int descriptorSize() const;
|
||
|
|
||
|
void setParams(size_t n_features, const ORB::CommonParams& detector_params);
|
||
|
void setFastParams(int threshold, bool nonmaxSupression = true);
|
||
|
|
||
|
void release();
|
||
|
|
||
|
bool blurForDescriptor;
|
||
|
};
|
||
|
|
||
|
The class implements ORB feature detection and description algorithm.
|
||
|
|
||
|
|
||
|
|
||
|
gpu::ORB_GPU::ORB_GPU
|
||
|
-------------------------------------
|
||
|
Constructor.
|
||
|
|
||
13 years ago
|
.. ocv:function:: gpu::ORB_GPU::ORB_GPU(int nFeatures = 500, float scaleFactor = 1.2f, int nLevels = 8, int edgeThreshold = 31, int firstLevel = 0, int WTA_K = 2, int scoreType = 0, int patchSize = 31)
|
||
|
|
||
|
:param nFeatures: The number of desired features.
|
||
|
|
||
|
:param scaleFactor: Coefficient by which we divide the dimensions from one scale pyramid level to the next.
|
||
|
|
||
|
:param nLevels: The number of levels in the scale pyramid.
|
||
13 years ago
|
|
||
13 years ago
|
:param edgeThreshold: How far from the boundary the points should be.
|
||
13 years ago
|
|
||
13 years ago
|
:param firstLevel: The level at which the image is given. If 1, that means we will also look at the image `scaleFactor` times bigger.
|
||
13 years ago
|
|
||
13 years ago
|
|
||
|
|
||
|
gpu::ORB_GPU::operator()
|
||
|
-------------------------------------
|
||
|
Detects keypoints and computes descriptors for them.
|
||
|
|
||
|
.. ocv:function:: void gpu::ORB_GPU::operator()(const GpuMat& image, const GpuMat& mask, std::vector<KeyPoint>& keypoints)
|
||
|
|
||
|
.. ocv:function:: void gpu::ORB_GPU::operator()(const GpuMat& image, const GpuMat& mask, GpuMat& keypoints)
|
||
|
|
||
|
.. ocv:function:: void gpu::ORB_GPU::operator()(const GpuMat& image, const GpuMat& mask, std::vector<KeyPoint>& keypoints, GpuMat& descriptors)
|
||
|
|
||
|
.. ocv:function:: void gpu::ORB_GPU::operator()(const GpuMat& image, const GpuMat& mask, GpuMat& keypoints, GpuMat& descriptors)
|
||
|
|
||
|
:param image: Input 8-bit grayscale image.
|
||
13 years ago
|
|
||
13 years ago
|
:param mask: Optional input mask that marks the regions where we should detect features.
|
||
13 years ago
|
|
||
13 years ago
|
:param keypoints: The input/output vector of keypoints. Can be stored both in CPU and GPU memory. For GPU memory:
|
||
|
|
||
|
* ``keypoints.ptr<float>(X_ROW)[i]`` contains x coordinate of the i'th feature.
|
||
|
* ``keypoints.ptr<float>(Y_ROW)[i]`` contains y coordinate of the i'th feature.
|
||
|
* ``keypoints.ptr<float>(RESPONSE_ROW)[i]`` contains the response of the i'th feature.
|
||
|
* ``keypoints.ptr<float>(ANGLE_ROW)[i]`` contains orientation of the i'th feature.
|
||
|
* ``keypoints.ptr<float>(OCTAVE_ROW)[i]`` contains the octave of the i'th feature.
|
||
|
* ``keypoints.ptr<float>(SIZE_ROW)[i]`` contains the size of the i'th feature.
|
||
13 years ago
|
|
||
13 years ago
|
:param descriptors: Computed descriptors. if ``blurForDescriptor`` is true, image will be blurred before descriptors calculation.
|
||
|
|
||
|
|
||
|
|
||
13 years ago
|
gpu::ORB_GPU::downloadKeyPoints
|
||
13 years ago
|
-------------------------------------
|
||
|
Download keypoints from GPU to CPU memory.
|
||
|
|
||
12 years ago
|
.. ocv:function:: static void gpu::ORB_GPU::downloadKeyPoints( const GpuMat& d_keypoints, std::vector<KeyPoint>& keypoints )
|
||
13 years ago
|
|
||
|
|
||
|
|
||
13 years ago
|
gpu::ORB_GPU::convertKeyPoints
|
||
13 years ago
|
-------------------------------------
|
||
|
Converts keypoints from GPU representation to vector of ``KeyPoint``.
|
||
|
|
||
12 years ago
|
.. ocv:function:: static void gpu::ORB_GPU::convertKeyPoints( const Mat& d_keypoints, std::vector<KeyPoint>& keypoints )
|
||
13 years ago
|
|
||
|
|
||
|
|
||
|
gpu::ORB_GPU::release
|
||
|
-------------------------------------
|
||
|
Releases inner buffer memory.
|
||
|
|
||
|
.. ocv:function:: void gpu::ORB_GPU::release()
|
||
|
|
||
|
|
||
|
|
||
13 years ago
|
gpu::BFMatcher_GPU
|
||
14 years ago
|
--------------------------
|
||
13 years ago
|
.. ocv:class:: gpu::BFMatcher_GPU
|
||
14 years ago
|
|
||
14 years ago
|
Brute-force descriptor matcher. For each descriptor in the first set, this matcher finds the closest descriptor in the second set by trying each one. This descriptor matcher supports masking permissible matches between descriptor sets. ::
|
||
14 years ago
|
|
||
13 years ago
|
class BFMatcher_GPU
|
||
14 years ago
|
{
|
||
|
public:
|
||
13 years ago
|
explicit BFMatcher_GPU(int norm = cv::NORM_L2);
|
||
|
|
||
14 years ago
|
// Add descriptors to train descriptor collection.
|
||
|
void add(const std::vector<GpuMat>& descCollection);
|
||
14 years ago
|
|
||
14 years ago
|
// Get train descriptors collection.
|
||
|
const std::vector<GpuMat>& getTrainDescriptors() const;
|
||
14 years ago
|
|
||
14 years ago
|
// Clear train descriptors collection.
|
||
|
void clear();
|
||
14 years ago
|
|
||
14 years ago
|
// Return true if there are no train descriptors in collection.
|
||
14 years ago
|
bool empty() const;
|
||
14 years ago
|
|
||
14 years ago
|
// Return true if the matcher supports mask in match methods.
|
||
|
bool isMaskSupported() const;
|
||
14 years ago
|
|
||
13 years ago
|
void matchSingle(const GpuMat& query, const GpuMat& train,
|
||
14 years ago
|
GpuMat& trainIdx, GpuMat& distance,
|
||
13 years ago
|
const GpuMat& mask = GpuMat(), Stream& stream = Stream::Null());
|
||
14 years ago
|
|
||
14 years ago
|
static void matchDownload(const GpuMat& trainIdx,
|
||
|
const GpuMat& distance, std::vector<DMatch>& matches);
|
||
13 years ago
|
static void matchConvert(const Mat& trainIdx,
|
||
|
const Mat& distance, std::vector<DMatch>& matches);
|
||
14 years ago
|
|
||
13 years ago
|
void match(const GpuMat& query, const GpuMat& train,
|
||
14 years ago
|
std::vector<DMatch>& matches, const GpuMat& mask = GpuMat());
|
||
14 years ago
|
|
||
14 years ago
|
void makeGpuCollection(GpuMat& trainCollection, GpuMat& maskCollection,
|
||
|
const vector<GpuMat>& masks = std::vector<GpuMat>());
|
||
14 years ago
|
|
||
13 years ago
|
void matchCollection(const GpuMat& query, const GpuMat& trainCollection,
|
||
14 years ago
|
GpuMat& trainIdx, GpuMat& imgIdx, GpuMat& distance,
|
||
13 years ago
|
const GpuMat& maskCollection, Stream& stream = Stream::Null());
|
||
14 years ago
|
|
||
14 years ago
|
static void matchDownload(const GpuMat& trainIdx, GpuMat& imgIdx,
|
||
|
const GpuMat& distance, std::vector<DMatch>& matches);
|
||
13 years ago
|
static void matchConvert(const Mat& trainIdx, const Mat& imgIdx,
|
||
|
const Mat& distance, std::vector<DMatch>& matches);
|
||
14 years ago
|
|
||
13 years ago
|
void match(const GpuMat& query, std::vector<DMatch>& matches,
|
||
14 years ago
|
const std::vector<GpuMat>& masks = std::vector<GpuMat>());
|
||
14 years ago
|
|
||
13 years ago
|
void knnMatchSingle(const GpuMat& query, const GpuMat& train,
|
||
14 years ago
|
GpuMat& trainIdx, GpuMat& distance, GpuMat& allDist, int k,
|
||
13 years ago
|
const GpuMat& mask = GpuMat(), Stream& stream = Stream::Null());
|
||
14 years ago
|
|
||
13 years ago
|
static void knnMatchDownload(const GpuMat& trainIdx, const GpuMat& distance,
|
||
13 years ago
|
std::vector< std::vector<DMatch> >& matches, bool compactResult = false);
|
||
13 years ago
|
static void knnMatchConvert(const Mat& trainIdx, const Mat& distance,
|
||
13 years ago
|
std::vector< std::vector<DMatch> >& matches, bool compactResult = false);
|
||
14 years ago
|
|
||
13 years ago
|
void knnMatch(const GpuMat& query, const GpuMat& train,
|
||
14 years ago
|
std::vector< std::vector<DMatch> >& matches, int k,
|
||
|
const GpuMat& mask = GpuMat(), bool compactResult = false);
|
||
14 years ago
|
|
||
13 years ago
|
void knnMatch2Collection(const GpuMat& query, const GpuMat& trainCollection,
|
||
|
GpuMat& trainIdx, GpuMat& imgIdx, GpuMat& distance,
|
||
|
const GpuMat& maskCollection = GpuMat(), Stream& stream = Stream::Null());
|
||
14 years ago
|
|
||
13 years ago
|
static void knnMatch2Download(const GpuMat& trainIdx, const GpuMat& imgIdx, const GpuMat& distance,
|
||
|
std::vector< std::vector<DMatch> >& matches, bool compactResult = false);
|
||
|
static void knnMatch2Convert(const Mat& trainIdx, const Mat& imgIdx, const Mat& distance,
|
||
|
std::vector< std::vector<DMatch> >& matches, bool compactResult = false);
|
||
14 years ago
|
|
||
13 years ago
|
void knnMatch(const GpuMat& query, std::vector< std::vector<DMatch> >& matches, int k,
|
||
|
const std::vector<GpuMat>& masks = std::vector<GpuMat>(),
|
||
13 years ago
|
bool compactResult = false);
|
||
14 years ago
|
|
||
13 years ago
|
void radiusMatchSingle(const GpuMat& query, const GpuMat& train,
|
||
|
GpuMat& trainIdx, GpuMat& distance, GpuMat& nMatches, float maxDistance,
|
||
|
const GpuMat& mask = GpuMat(), Stream& stream = Stream::Null());
|
||
|
|
||
|
static void radiusMatchDownload(const GpuMat& trainIdx, const GpuMat& distance, const GpuMat& nMatches,
|
||
|
std::vector< std::vector<DMatch> >& matches, bool compactResult = false);
|
||
|
static void radiusMatchConvert(const Mat& trainIdx, const Mat& distance, const Mat& nMatches,
|
||
|
std::vector< std::vector<DMatch> >& matches, bool compactResult = false);
|
||
|
|
||
|
void radiusMatch(const GpuMat& query, const GpuMat& train,
|
||
14 years ago
|
std::vector< std::vector<DMatch> >& matches, float maxDistance,
|
||
|
const GpuMat& mask = GpuMat(), bool compactResult = false);
|
||
14 years ago
|
|
||
13 years ago
|
void radiusMatchCollection(const GpuMat& query, GpuMat& trainIdx, GpuMat& imgIdx, GpuMat& distance, GpuMat& nMatches, float maxDistance,
|
||
|
const std::vector<GpuMat>& masks = std::vector<GpuMat>(), Stream& stream = Stream::Null());
|
||
|
|
||
|
static void radiusMatchDownload(const GpuMat& trainIdx, const GpuMat& imgIdx, const GpuMat& distance, const GpuMat& nMatches,
|
||
|
std::vector< std::vector<DMatch> >& matches, bool compactResult = false);
|
||
|
static void radiusMatchConvert(const Mat& trainIdx, const Mat& imgIdx, const Mat& distance, const Mat& nMatches,
|
||
|
std::vector< std::vector<DMatch> >& matches, bool compactResult = false);
|
||
|
|
||
|
void radiusMatch(const GpuMat& query, std::vector< std::vector<DMatch> >& matches, float maxDistance,
|
||
|
const std::vector<GpuMat>& masks = std::vector<GpuMat>(), bool compactResult = false);
|
||
14 years ago
|
|
||
14 years ago
|
private:
|
||
|
std::vector<GpuMat> trainDescCollection;
|
||
|
};
|
||
14 years ago
|
|
||
14 years ago
|
|
||
13 years ago
|
The class ``BFMatcher_GPU`` has an interface similar to the class :ocv:class:`DescriptorMatcher`. It has two groups of ``match`` methods: for matching descriptors of one image with another image or with an image set. Also, all functions have an alternative to save results either to the GPU memory or to the CPU memory.
|
||
14 years ago
|
|
||
13 years ago
|
.. seealso:: :ocv:class:`DescriptorMatcher`, :ocv:class:`BFMatcher`
|
||
14 years ago
|
|
||
14 years ago
|
|
||
14 years ago
|
|
||
13 years ago
|
gpu::BFMatcher_GPU::match
|
||
14 years ago
|
-------------------------------------
|
||
13 years ago
|
Finds the best match for each descriptor from a query set with train descriptors.
|
||
|
|
||
13 years ago
|
.. ocv:function:: void gpu::BFMatcher_GPU::match(const GpuMat& query, const GpuMat& train, std::vector<DMatch>& matches, const GpuMat& mask = GpuMat())
|
||
14 years ago
|
|
||
13 years ago
|
.. ocv:function:: void gpu::BFMatcher_GPU::matchSingle(const GpuMat& query, const GpuMat& train, GpuMat& trainIdx, GpuMat& distance, const GpuMat& mask = GpuMat(), Stream& stream = Stream::Null())
|
||
13 years ago
|
|
||
13 years ago
|
.. ocv:function:: void gpu::BFMatcher_GPU::match(const GpuMat& query, std::vector<DMatch>& matches, const std::vector<GpuMat>& masks = std::vector<GpuMat>())
|
||
13 years ago
|
|
||
13 years ago
|
.. ocv:function:: void gpu::BFMatcher_GPU::matchCollection( const GpuMat& query, const GpuMat& trainCollection, GpuMat& trainIdx, GpuMat& imgIdx, GpuMat& distance, const GpuMat& masks=GpuMat(), Stream& stream=Stream::Null() )
|
||
14 years ago
|
|
||
13 years ago
|
.. seealso:: :ocv:func:`DescriptorMatcher::match`
|
||
14 years ago
|
|
||
14 years ago
|
|
||
14 years ago
|
|
||
13 years ago
|
gpu::BFMatcher_GPU::makeGpuCollection
|
||
14 years ago
|
-------------------------------------------------
|
||
13 years ago
|
Performs a GPU collection of train descriptors and masks in a suitable format for the :ocv:func:`gpu::BFMatcher_GPU::matchCollection` function.
|
||
14 years ago
|
|
||
13 years ago
|
.. ocv:function:: void gpu::BFMatcher_GPU::makeGpuCollection(GpuMat& trainCollection, GpuMat& maskCollection, const vector<GpuMat>& masks = std::vector<GpuMat>())
|
||
14 years ago
|
|
||
14 years ago
|
|
||
14 years ago
|
|
||
13 years ago
|
gpu::BFMatcher_GPU::matchDownload
|
||
14 years ago
|
---------------------------------------------
|
||
13 years ago
|
Downloads matrices obtained via :ocv:func:`gpu::BFMatcher_GPU::matchSingle` or :ocv:func:`gpu::BFMatcher_GPU::matchCollection` to vector with :ocv:class:`DMatch`.
|
||
13 years ago
|
|
||
13 years ago
|
.. ocv:function:: static void gpu::BFMatcher_GPU::matchDownload(const GpuMat& trainIdx, const GpuMat& distance, std::vector<DMatch>&matches)
|
||
14 years ago
|
|
||
13 years ago
|
.. ocv:function:: static void gpu::BFMatcher_GPU::matchDownload( const GpuMat& trainIdx, const GpuMat& imgIdx, const GpuMat& distance, std::vector<DMatch>& matches )
|
||
14 years ago
|
|
||
13 years ago
|
|
||
|
|
||
13 years ago
|
gpu::BFMatcher_GPU::matchConvert
|
||
13 years ago
|
---------------------------------------------
|
||
13 years ago
|
Converts matrices obtained via :ocv:func:`gpu::BFMatcher_GPU::matchSingle` or :ocv:func:`gpu::BFMatcher_GPU::matchCollection` to vector with :ocv:class:`DMatch`.
|
||
13 years ago
|
|
||
13 years ago
|
.. ocv:function:: void gpu::BFMatcher_GPU::matchConvert(const Mat& trainIdx, const Mat& distance, std::vector<DMatch>&matches)
|
||
13 years ago
|
|
||
13 years ago
|
.. ocv:function:: void gpu::BFMatcher_GPU::matchConvert(const Mat& trainIdx, const Mat& imgIdx, const Mat& distance, std::vector<DMatch>&matches)
|
||
14 years ago
|
|
||
14 years ago
|
|
||
14 years ago
|
|
||
13 years ago
|
gpu::BFMatcher_GPU::knnMatch
|
||
14 years ago
|
----------------------------------------
|
||
13 years ago
|
Finds the ``k`` best matches for each descriptor from a query set with train descriptors.
|
||
13 years ago
|
|
||
13 years ago
|
.. ocv:function:: void gpu::BFMatcher_GPU::knnMatch(const GpuMat& query, const GpuMat& train, std::vector< std::vector<DMatch> >&matches, int k, const GpuMat& mask = GpuMat(), bool compactResult = false)
|
||
14 years ago
|
|
||
13 years ago
|
.. ocv:function:: void gpu::BFMatcher_GPU::knnMatchSingle(const GpuMat& query, const GpuMat& train, GpuMat& trainIdx, GpuMat& distance, GpuMat& allDist, int k, const GpuMat& mask = GpuMat(), Stream& stream = Stream::Null())
|
||
13 years ago
|
|
||
13 years ago
|
.. ocv:function:: void gpu::BFMatcher_GPU::knnMatch(const GpuMat& query, std::vector< std::vector<DMatch> >&matches, int k, const std::vector<GpuMat>&masks = std::vector<GpuMat>(), bool compactResult = false )
|
||
13 years ago
|
|
||
13 years ago
|
.. ocv:function:: void gpu::BFMatcher_GPU::knnMatch2Collection(const GpuMat& query, const GpuMat& trainCollection, GpuMat& trainIdx, GpuMat& imgIdx, GpuMat& distance, const GpuMat& maskCollection = GpuMat(), Stream& stream = Stream::Null())
|
||
13 years ago
|
|
||
13 years ago
|
:param query: Query set of descriptors.
|
||
13 years ago
|
|
||
13 years ago
|
:param train: Training set of descriptors. It is not be added to train descriptors collection stored in the class object.
|
||
14 years ago
|
|
||
14 years ago
|
:param k: Number of the best matches per each query descriptor (or less if it is not possible).
|
||
14 years ago
|
|
||
14 years ago
|
:param mask: Mask specifying permissible matches between the input query and train matrices of descriptors.
|
||
14 years ago
|
|
||
13 years ago
|
:param compactResult: If ``compactResult`` is ``true`` , the ``matches`` vector does not contain matches for fully masked-out query descriptors.
|
||
|
|
||
|
:param stream: Stream for the asynchronous version.
|
||
|
|
||
13 years ago
|
The function returns detected ``k`` (or less if not possible) matches in the increasing order by distance.
|
||
13 years ago
|
|
||
14 years ago
|
The third variant of the method stores the results in GPU memory.
|
||
|
|
||
13 years ago
|
.. seealso:: :ocv:func:`DescriptorMatcher::knnMatch`
|
||
|
|
||
14 years ago
|
|
||
14 years ago
|
|
||
13 years ago
|
gpu::BFMatcher_GPU::knnMatchDownload
|
||
14 years ago
|
------------------------------------------------
|
||
13 years ago
|
Downloads matrices obtained via :ocv:func:`gpu::BFMatcher_GPU::knnMatchSingle` or :ocv:func:`gpu::BFMatcher_GPU::knnMatch2Collection` to vector with :ocv:class:`DMatch`.
|
||
13 years ago
|
|
||
13 years ago
|
.. ocv:function:: void gpu::BFMatcher_GPU::knnMatchDownload(const GpuMat& trainIdx, const GpuMat& distance, std::vector< std::vector<DMatch> >&matches, bool compactResult = false)
|
||
14 years ago
|
|
||
13 years ago
|
.. ocv:function:: void gpu::BFMatcher_GPU::knnMatch2Download(const GpuMat& trainIdx, const GpuMat& imgIdx, const GpuMat& distance, std::vector< std::vector<DMatch> >& matches, bool compactResult = false)
|
||
13 years ago
|
|
||
13 years ago
|
If ``compactResult`` is ``true`` , the ``matches`` vector does not contain matches for fully masked-out query descriptors.
|
||
|
|
||
|
|
||
|
|
||
13 years ago
|
gpu::BFMatcher_GPU::knnMatchConvert
|
||
13 years ago
|
------------------------------------------------
|
||
13 years ago
|
Converts matrices obtained via :ocv:func:`gpu::BFMatcher_GPU::knnMatchSingle` or :ocv:func:`gpu::BFMatcher_GPU::knnMatch2Collection` to CPU vector with :ocv:class:`DMatch`.
|
||
13 years ago
|
|
||
13 years ago
|
.. ocv:function:: void gpu::BFMatcher_GPU::knnMatchConvert(const Mat& trainIdx, const Mat& distance, std::vector< std::vector<DMatch> >&matches, bool compactResult = false)
|
||
13 years ago
|
|
||
13 years ago
|
.. ocv:function:: void gpu::BFMatcher_GPU::knnMatch2Convert(const Mat& trainIdx, const Mat& imgIdx, const Mat& distance, std::vector< std::vector<DMatch> >& matches, bool compactResult = false)
|
||
13 years ago
|
|
||
13 years ago
|
If ``compactResult`` is ``true`` , the ``matches`` vector does not contain matches for fully masked-out query descriptors.
|
||
14 years ago
|
|
||
14 years ago
|
|
||
14 years ago
|
|
||
13 years ago
|
gpu::BFMatcher_GPU::radiusMatch
|
||
14 years ago
|
-------------------------------------------
|
||
13 years ago
|
For each query descriptor, finds the best matches with a distance less than a given threshold.
|
||
|
|
||
13 years ago
|
.. ocv:function:: void gpu::BFMatcher_GPU::radiusMatch(const GpuMat& query, const GpuMat& train, std::vector< std::vector<DMatch> >&matches, float maxDistance, const GpuMat& mask = GpuMat(), bool compactResult = false)
|
||
14 years ago
|
|
||
13 years ago
|
.. ocv:function:: void gpu::BFMatcher_GPU::radiusMatchSingle(const GpuMat& query, const GpuMat& train, GpuMat& trainIdx, GpuMat& distance, GpuMat& nMatches, float maxDistance, const GpuMat& mask = GpuMat(), Stream& stream = Stream::Null())
|
||
14 years ago
|
|
||
13 years ago
|
.. ocv:function:: void gpu::BFMatcher_GPU::radiusMatch(const GpuMat& query, std::vector< std::vector<DMatch> >&matches, float maxDistance, const std::vector<GpuMat>& masks = std::vector<GpuMat>(), bool compactResult = false)
|
||
13 years ago
|
|
||
13 years ago
|
.. ocv:function:: void gpu::BFMatcher_GPU::radiusMatchCollection(const GpuMat& query, GpuMat& trainIdx, GpuMat& imgIdx, GpuMat& distance, GpuMat& nMatches, float maxDistance, const std::vector<GpuMat>& masks = std::vector<GpuMat>(), Stream& stream = Stream::Null())
|
||
13 years ago
|
|
||
13 years ago
|
:param query: Query set of descriptors.
|
||
13 years ago
|
|
||
13 years ago
|
:param train: Training set of descriptors. It is not added to train descriptors collection stored in the class object.
|
||
14 years ago
|
|
||
14 years ago
|
:param maxDistance: Distance threshold.
|
||
14 years ago
|
|
||
14 years ago
|
:param mask: Mask specifying permissible matches between the input query and train matrices of descriptors.
|
||
14 years ago
|
|
||
13 years ago
|
:param compactResult: If ``compactResult`` is ``true`` , the ``matches`` vector does not contain matches for fully masked-out query descriptors.
|
||
|
|
||
|
:param stream: Stream for the asynchronous version.
|
||
|
|
||
|
The function returns detected matches in the increasing order by distance.
|
||
|
|
||
14 years ago
|
The methods work only on devices with the compute capability :math:`>=` 1.1.
|
||
13 years ago
|
|
||
14 years ago
|
The third variant of the method stores the results in GPU memory and does not store the points by the distance.
|
||
|
|
||
13 years ago
|
.. seealso:: :ocv:func:`DescriptorMatcher::radiusMatch`
|
||
|
|
||
14 years ago
|
|
||
14 years ago
|
|
||
13 years ago
|
gpu::BFMatcher_GPU::radiusMatchDownload
|
||
14 years ago
|
---------------------------------------------------
|
||
13 years ago
|
Downloads matrices obtained via :ocv:func:`gpu::BFMatcher_GPU::radiusMatchSingle` or :ocv:func:`gpu::BFMatcher_GPU::radiusMatchCollection` to vector with :ocv:class:`DMatch`.
|
||
13 years ago
|
|
||
13 years ago
|
.. ocv:function:: void gpu::BFMatcher_GPU::radiusMatchDownload(const GpuMat& trainIdx, const GpuMat& distance, const GpuMat& nMatches, std::vector< std::vector<DMatch> >&matches, bool compactResult = false)
|
||
13 years ago
|
|
||
13 years ago
|
.. ocv:function:: void gpu::BFMatcher_GPU::radiusMatchDownload(const GpuMat& trainIdx, const GpuMat& imgIdx, const GpuMat& distance, const GpuMat& nMatches, std::vector< std::vector<DMatch> >& matches, bool compactResult = false)
|
||
14 years ago
|
|
||
13 years ago
|
If ``compactResult`` is ``true`` , the ``matches`` vector does not contain matches for fully masked-out query descriptors.
|
||
|
|
||
|
|
||
|
|
||
|
|
||
13 years ago
|
gpu::BFMatcher_GPU::radiusMatchConvert
|
||
13 years ago
|
---------------------------------------------------
|
||
13 years ago
|
Converts matrices obtained via :ocv:func:`gpu::BFMatcher_GPU::radiusMatchSingle` or :ocv:func:`gpu::BFMatcher_GPU::radiusMatchCollection` to vector with :ocv:class:`DMatch`.
|
||
13 years ago
|
|
||
13 years ago
|
.. ocv:function:: void gpu::BFMatcher_GPU::radiusMatchConvert(const Mat& trainIdx, const Mat& distance, const Mat& nMatches, std::vector< std::vector<DMatch> >&matches, bool compactResult = false)
|
||
13 years ago
|
|
||
13 years ago
|
.. ocv:function:: void gpu::BFMatcher_GPU::radiusMatchConvert(const Mat& trainIdx, const Mat& imgIdx, const Mat& distance, const Mat& nMatches, std::vector< std::vector<DMatch> >& matches, bool compactResult = false)
|
||
13 years ago
|
|
||
|
If ``compactResult`` is ``true`` , the ``matches`` vector does not contain matches for fully masked-out query descriptors.
|