Updated the stitching module docs

pull/13383/head
Alexey Spizhevoy 13 years ago
parent 196ac49fcf
commit a7e7226a02
  1. 113
      modules/stitching/doc/matching.rst
  2. 45
      modules/stitching/doc/motion_estimation.rst
  3. 2
      modules/stitching/include/opencv2/stitching/detail/motion_estimators.hpp

@ -35,6 +35,43 @@ Feature finders base class. ::
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
--------------------------
.. ocv:class:: detail::SurfFeaturesFinder
@ -51,9 +88,7 @@ SURF features finder. ::
/* hidden */
};
.. seealso::
:ocv:class:`detail::FeaturesFinder`
:ocv:class:`SURF`
.. seealso:: :ocv:class:`detail::FeaturesFinder`, :ocv:class:`SURF`
detail::OrbFeaturesFinder
-------------------------
@ -71,13 +106,11 @@ ORB features finder. ::
/* hidden */
};
.. seealso::
:ocv:class:`detail::FeaturesFinder`,
:ocv:class:`ORB`
.. seealso:: :ocv:class:`detail::FeaturesFinder`, :ocv:class:`ORB`
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. ::
@ -110,7 +143,7 @@ Feature matchers base class. ::
MatchesInfo& matches_info) { match(features1, features2, matches_info); }
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_; }
@ -125,6 +158,56 @@ Feature matchers base class. ::
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
-----------------------------
.. 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`
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;
};
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
--------------------------------
.. ocv:class:: detail::HomographyBasedEstimator
@ -39,13 +65,8 @@ Homography based rotation estimator. ::
HomographyBasedEstimator(bool is_focals_estimated = false)
: is_focals_estimated_(is_focals_estimated) {}
bool isFocalsEstimated() const { return is_focals_estimated_; }
private:
void estimate(const std::vector<ImageFeatures> &features, const std::vector<MatchesInfo> &pairwise_matches,
std::vector<CameraParams> &cameras);
bool is_focals_estimated_;
private:
/* hidden */
};
detail::BundleAdjusterBase
@ -115,6 +136,16 @@ Base class for all camera parameters refinement methods. ::
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
----------------------------

@ -72,8 +72,6 @@ public:
HomographyBasedEstimator(bool is_focals_estimated = false)
: is_focals_estimated_(is_focals_estimated) {}
bool isFocalsEstimated() const { return is_focals_estimated_; }
private:
void estimate(const std::vector<ImageFeatures> &features, const std::vector<MatchesInfo> &pairwise_matches,
std::vector<CameraParams> &cameras);

Loading…
Cancel
Save