Updated the stitching module docs
This commit is contained in:
parent
196ac49fcf
commit
a7e7226a02
@ -35,6 +35,43 @@ Feature finders base class. ::
|
|||||||
virtual void find(const Mat &image, ImageFeatures &features) = 0;
|
virtual void find(const Mat &image, ImageFeatures &features) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
detail::FeaturesFinder::operator()
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
Finds features in the given image.
|
||||||
|
|
||||||
|
.. ocv:function:: void detail::FeaturesFinder::operator ()(const Mat &image, ImageFeatures &features)
|
||||||
|
|
||||||
|
.. ocv:function:: void detail::FeaturesFinder::operator ()(const Mat &image, ImageFeatures &features, const std::vector<cv::Rect> &rois)
|
||||||
|
|
||||||
|
:param image: Source image
|
||||||
|
|
||||||
|
:param features: Found features
|
||||||
|
|
||||||
|
:param rois: Regions of interest
|
||||||
|
|
||||||
|
.. seealso:: :ocv:struct:`detail::ImageFeatures`, :ocv:class:`Rect_`
|
||||||
|
|
||||||
|
detail::FeaturesFinder::collectGarbage
|
||||||
|
--------------------------------------
|
||||||
|
|
||||||
|
Frees unused memory allocated before if there is any.
|
||||||
|
|
||||||
|
.. ocv:function:: void detail::FeaturesFinder::collectGarbage()
|
||||||
|
|
||||||
|
detail::FeaturesFinder::find
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
This method must implement features finding logic in order to make the wrappers `detail::FeaturesFinder::operator()`_ work.
|
||||||
|
|
||||||
|
.. ocv:function:: void find(const Mat &image, ImageFeatures &features)
|
||||||
|
|
||||||
|
:param image: Source image
|
||||||
|
|
||||||
|
:param features: Found features
|
||||||
|
|
||||||
|
.. seealso:: :ocv:struct:`detail::ImageFeatures`
|
||||||
|
|
||||||
detail::SurfFeaturesFinder
|
detail::SurfFeaturesFinder
|
||||||
--------------------------
|
--------------------------
|
||||||
.. ocv:class:: detail::SurfFeaturesFinder
|
.. ocv:class:: detail::SurfFeaturesFinder
|
||||||
@ -51,9 +88,7 @@ SURF features finder. ::
|
|||||||
/* hidden */
|
/* hidden */
|
||||||
};
|
};
|
||||||
|
|
||||||
.. seealso::
|
.. seealso:: :ocv:class:`detail::FeaturesFinder`, :ocv:class:`SURF`
|
||||||
:ocv:class:`detail::FeaturesFinder`
|
|
||||||
:ocv:class:`SURF`
|
|
||||||
|
|
||||||
detail::OrbFeaturesFinder
|
detail::OrbFeaturesFinder
|
||||||
-------------------------
|
-------------------------
|
||||||
@ -71,13 +106,11 @@ ORB features finder. ::
|
|||||||
/* hidden */
|
/* hidden */
|
||||||
};
|
};
|
||||||
|
|
||||||
.. seealso::
|
.. seealso:: :ocv:class:`detail::FeaturesFinder`, :ocv:class:`ORB`
|
||||||
:ocv:class:`detail::FeaturesFinder`,
|
|
||||||
:ocv:class:`ORB`
|
|
||||||
|
|
||||||
detail::MatchesInfo
|
detail::MatchesInfo
|
||||||
-------------------
|
-------------------
|
||||||
.. ocv:struct: detail::MatchesInfo
|
.. ocv:struct:: detail::MatchesInfo
|
||||||
|
|
||||||
Structure containing information about matches between two images. It's assumed that there is a homography between those images. ::
|
Structure containing information about matches between two images. It's assumed that there is a homography between those images. ::
|
||||||
|
|
||||||
@ -110,7 +143,7 @@ Feature matchers base class. ::
|
|||||||
MatchesInfo& matches_info) { match(features1, features2, matches_info); }
|
MatchesInfo& matches_info) { match(features1, features2, matches_info); }
|
||||||
|
|
||||||
void operator ()(const std::vector<ImageFeatures> &features, std::vector<MatchesInfo> &pairwise_matches,
|
void operator ()(const std::vector<ImageFeatures> &features, std::vector<MatchesInfo> &pairwise_matches,
|
||||||
const cv::Mat &mask = cv::Mat());
|
const Mat &mask = cv::Mat());
|
||||||
|
|
||||||
bool isThreadSafe() const { return is_thread_safe_; }
|
bool isThreadSafe() const { return is_thread_safe_; }
|
||||||
|
|
||||||
@ -125,6 +158,56 @@ Feature matchers base class. ::
|
|||||||
bool is_thread_safe_;
|
bool is_thread_safe_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
detail::FeaturesMatcher::operator()
|
||||||
|
-----------------------------------
|
||||||
|
|
||||||
|
Performs images matching.
|
||||||
|
|
||||||
|
.. ocv:function:: void detail::FeaturesMatcher::operator ()(const ImageFeatures &features1, const ImageFeatures &features2, MatchesInfo& matches_info)
|
||||||
|
|
||||||
|
:param features1: First image features
|
||||||
|
|
||||||
|
:param features2: Second image features
|
||||||
|
|
||||||
|
:param matches_info: Found matches
|
||||||
|
|
||||||
|
.. ocv:function:: void detail::FeaturesMatcher::operator ()(const std::vector<ImageFeatures> &features, std::vector<MatchesInfo> &pairwise_matches, const Mat &mask)
|
||||||
|
|
||||||
|
:param features: Features of the source images
|
||||||
|
|
||||||
|
:param pairwise_matches: Found pairwise matches
|
||||||
|
|
||||||
|
:param mask: Mask indicating which image pairs must be matched
|
||||||
|
|
||||||
|
.. seealso:: :ocv:struct:`detail::MatchesInfo`
|
||||||
|
|
||||||
|
detail::FeaturesMatcher::isThreadSafe
|
||||||
|
-------------------------------------
|
||||||
|
|
||||||
|
.. ocv:function:: bool detail::FeaturesMatcher::isThreadSafe() const
|
||||||
|
|
||||||
|
:return: True, if it's possible to use the same matcher instance in parallel, false otherwise
|
||||||
|
|
||||||
|
detail::FeaturesMatcher::collectGarbage
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
Frees unused memory allocated before if there is any.
|
||||||
|
|
||||||
|
.. ocv:function:: void detail::FeaturesMatcher::collectGarbage()
|
||||||
|
|
||||||
|
detail::FeaturesMatcher::match
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
This method must implement matching logic in order to make the wrappers `detail::FeaturesMatcher::operator()`_ work.
|
||||||
|
|
||||||
|
.. ocv:function:: void detail::FeaturesMatcher::match(const ImageFeatures &features1, const ImageFeatures &features2, MatchesInfo& matches_info)
|
||||||
|
|
||||||
|
:param features1: First image features
|
||||||
|
|
||||||
|
:param features2: Second image features
|
||||||
|
|
||||||
|
:param matches_info: Found matches
|
||||||
|
|
||||||
detail::BestOf2NearestMatcher
|
detail::BestOf2NearestMatcher
|
||||||
-----------------------------
|
-----------------------------
|
||||||
.. ocv:class:: detail::BestOf2NearestMatcher
|
.. ocv:class:: detail::BestOf2NearestMatcher
|
||||||
@ -149,3 +232,17 @@ Features matcher which finds two best matches for each feature and leaves the be
|
|||||||
|
|
||||||
.. seealso:: :ocv:class:`detail::FeaturesMatcher`
|
.. seealso:: :ocv:class:`detail::FeaturesMatcher`
|
||||||
|
|
||||||
|
detail::BestOf2NearestMatcher::BestOf2NearestMatcher
|
||||||
|
----------------------------------------------------
|
||||||
|
|
||||||
|
Constructs a "best of 2 nearest" matcher.
|
||||||
|
|
||||||
|
.. ocv:function:: detail::BestOf2NearestMatcher::BestOf2NearestMatcher(bool try_use_gpu = false, float match_conf = 0.65f, int num_matches_thresh1 = 6, int num_matches_thresh2 = 6)
|
||||||
|
|
||||||
|
:param try_use_gpu: Should try to use GPU or not
|
||||||
|
|
||||||
|
:param match_conf: Match distances ration threshold
|
||||||
|
|
||||||
|
:param num_matches_thresh1: Minimum number of matches required for the 2D projective transform estimation used in the inliers classification step
|
||||||
|
|
||||||
|
:param num_matches_thresh1: Minimum number of matches required for the 2D projective transform re-estimation on inliers
|
||||||
|
@ -27,6 +27,32 @@ Rotation estimator base class. It takes features of all images, pairwise matches
|
|||||||
std::vector<CameraParams> &cameras) = 0;
|
std::vector<CameraParams> &cameras) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
detail::Estimator::operator()
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Estimates camera parameters.
|
||||||
|
|
||||||
|
.. ocv:function:: detail::Estimator::operator ()(const std::vector<ImageFeatures> &features, const std::vector<MatchesInfo> &pairwise_matches, std::vector<CameraParams> &cameras)
|
||||||
|
|
||||||
|
:param features: Features of images
|
||||||
|
|
||||||
|
:param pairwise_matches: Pairwise matches of images
|
||||||
|
|
||||||
|
:param cameras: Estimated camera parameters
|
||||||
|
|
||||||
|
detail::Estimator::estimate
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
This method must implement camera parameters estimation logic in order to make the wrapper `detail::Estimator::operator()`_ work.
|
||||||
|
|
||||||
|
.. ocv:function:: void detail::Estimator::estimate(const std::vector<ImageFeatures> &features, const std::vector<MatchesInfo> &pairwise_matches, std::vector<CameraParams> &cameras)
|
||||||
|
|
||||||
|
:param features: Features of images
|
||||||
|
|
||||||
|
:param pairwise_matches: Pairwise matches of images
|
||||||
|
|
||||||
|
:param cameras: Estimated camera parameters
|
||||||
|
|
||||||
detail::HomographyBasedEstimator
|
detail::HomographyBasedEstimator
|
||||||
--------------------------------
|
--------------------------------
|
||||||
.. ocv:class:: detail::HomographyBasedEstimator
|
.. ocv:class:: detail::HomographyBasedEstimator
|
||||||
@ -39,13 +65,8 @@ Homography based rotation estimator. ::
|
|||||||
HomographyBasedEstimator(bool is_focals_estimated = false)
|
HomographyBasedEstimator(bool is_focals_estimated = false)
|
||||||
: is_focals_estimated_(is_focals_estimated) {}
|
: is_focals_estimated_(is_focals_estimated) {}
|
||||||
|
|
||||||
bool isFocalsEstimated() const { return is_focals_estimated_; }
|
private:
|
||||||
|
/* hidden */
|
||||||
private:
|
|
||||||
void estimate(const std::vector<ImageFeatures> &features, const std::vector<MatchesInfo> &pairwise_matches,
|
|
||||||
std::vector<CameraParams> &cameras);
|
|
||||||
|
|
||||||
bool is_focals_estimated_;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
detail::BundleAdjusterBase
|
detail::BundleAdjusterBase
|
||||||
@ -115,6 +136,16 @@ Base class for all camera parameters refinement methods. ::
|
|||||||
std::vector<std::pair<int,int> > edges_;
|
std::vector<std::pair<int,int> > edges_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
detail::BundleAdjusterBase::BundleAdjusterBase
|
||||||
|
----------------------------------------------
|
||||||
|
|
||||||
|
Construct a bundle adjuster base instance.
|
||||||
|
|
||||||
|
.. ocv:function:: detail::BundleAdjusterBase::BundleAdjusterBase(int num_params_per_cam, int num_errs_per_measurement)
|
||||||
|
|
||||||
|
:param num_params_per_cam: Number of parameters per camera
|
||||||
|
|
||||||
|
:param num_errs_per_measurement: Number of error terms (components) per match
|
||||||
|
|
||||||
detail::BundleAdjusterReproj
|
detail::BundleAdjusterReproj
|
||||||
----------------------------
|
----------------------------
|
||||||
|
@ -72,8 +72,6 @@ public:
|
|||||||
HomographyBasedEstimator(bool is_focals_estimated = false)
|
HomographyBasedEstimator(bool is_focals_estimated = false)
|
||||||
: is_focals_estimated_(is_focals_estimated) {}
|
: is_focals_estimated_(is_focals_estimated) {}
|
||||||
|
|
||||||
bool isFocalsEstimated() const { return is_focals_estimated_; }
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void estimate(const std::vector<ImageFeatures> &features, const std::vector<MatchesInfo> &pairwise_matches,
|
void estimate(const std::vector<ImageFeatures> &features, const std::vector<MatchesInfo> &pairwise_matches,
|
||||||
std::vector<CameraParams> &cameras);
|
std::vector<CameraParams> &cameras);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user