43 #ifndef __OPENCV_STITCHING_MOTION_ESTIMATORS_HPP__
44 #define __OPENCV_STITCHING_MOTION_ESTIMATORS_HPP__
59 void operator ()(
const std::vector<ImageFeatures> &features,
const std::vector<MatchesInfo> &pairwise_matches,
60 std::vector<CameraParams> &cameras)
61 { estimate(features, pairwise_matches, cameras); }
64 virtual void estimate(
const std::vector<ImageFeatures> &features,
const std::vector<MatchesInfo> &pairwise_matches,
65 std::vector<CameraParams> &cameras) = 0;
73 : is_focals_estimated_(is_focals_estimated) {}
76 void estimate(
const std::vector<ImageFeatures> &features,
const std::vector<MatchesInfo> &pairwise_matches,
77 std::vector<CameraParams> &cameras);
79 bool is_focals_estimated_;
89 CV_Assert(mask.
type() == CV_8U && mask.
size() ==
Size(3, 3));
90 refinement_mask_ = mask.
clone();
101 : num_params_per_cam_(num_params_per_cam),
102 num_errs_per_measurement_(num_errs_per_measurement)
104 setRefinementMask(
Mat::ones(3, 3, CV_8U));
106 setTermCriteria(
cvTermCriteria(CV_TERMCRIT_EPS + CV_TERMCRIT_ITER, 1000, DBL_EPSILON));
110 virtual void estimate(
const std::vector<ImageFeatures> &features,
111 const std::vector<MatchesInfo> &pairwise_matches,
112 std::vector<CameraParams> &cameras);
114 virtual void setUpInitialCameraParams(
const std::vector<CameraParams> &cameras) = 0;
115 virtual void obtainRefinedCameraParams(std::vector<CameraParams> &cameras)
const = 0;
116 virtual void calcError(
Mat &err) = 0;
117 virtual void calcJacobian(
Mat &jac) = 0;
154 void setUpInitialCameraParams(
const std::vector<CameraParams> &cameras);
155 void obtainRefinedCameraParams(std::vector<CameraParams> &cameras)
const;
156 void calcError(
Mat &err);
157 void calcJacobian(
Mat &jac);
171 void setUpInitialCameraParams(
const std::vector<CameraParams> &cameras);
172 void obtainRefinedCameraParams(std::vector<CameraParams> &cameras)
const;
173 void calcError(
Mat &err);
174 void calcJacobian(
Mat &jac);
193 std::string CV_EXPORTS
matchesGraphAsString(std::vector<std::string> &pathes, std::vector<MatchesInfo> &pairwise_matches,
194 float conf_threshold);
196 std::vector<int> CV_EXPORTS
leaveBiggestComponent(std::vector<ImageFeatures> &features, std::vector<MatchesInfo> &pairwise_matches,
197 float conf_threshold);
199 void CV_EXPORTS
findMaxSpanningTree(
int num_images,
const std::vector<MatchesInfo> &pairwise_matches,
200 Graph &span_tree, std::vector<int> ¢ers);
205 #endif // __OPENCV_STITCHING_MOTION_ESTIMATORS_HPP__
static MatExpr ones(int rows, int cols, int type)
BundleAdjusterReproj()
Definition: motion_estimators.hpp:151
Definition: motion_estimators.hpp:54
void setConfThresh(double conf_thresh)
Definition: motion_estimators.hpp:94
HomographyBasedEstimator(bool is_focals_estimated=false)
Definition: motion_estimators.hpp:72
Mat clone() const
returns deep copy of the matrix, i.e. the data is copied
Definition: mat.hpp:332
std::vector< std::pair< int, int > > edges_
Definition: motion_estimators.hpp:141
Size2i Size
Definition: core.hpp:896
Mat cam_params_
Definition: motion_estimators.hpp:138
const ImageFeatures * features_
Definition: motion_estimators.hpp:128
Definition: motion_estimators.hpp:83
double confThresh() const
Definition: motion_estimators.hpp:93
void CV_EXPORTS findMaxSpanningTree(int num_images, const std::vector< MatchesInfo > &pairwise_matches, Graph &span_tree, std::vector< int > ¢ers)
Definition: matchers.hpp:59
std::vector< int > CV_EXPORTS leaveBiggestComponent(std::vector< ImageFeatures > &features, std::vector< MatchesInfo > &pairwise_matches, float conf_threshold)
CV_INLINE CvTermCriteria cvTermCriteria(int type, int max_iter, double epsilon)
Definition: types_c.h:1007
int type() const
returns element type, similar to CV_MAT_TYPE(cvmat->type)
Definition: mat.hpp:399
int num_params_per_cam_
Definition: motion_estimators.hpp:125
Definition: matchers.hpp:131
Definition: motion_estimators.hpp:183
int num_images_
Definition: motion_estimators.hpp:122
virtual ~Estimator()
Definition: motion_estimators.hpp:57
CvTermCriteria term_criteria_
Definition: motion_estimators.hpp:135
double conf_thresh_
Definition: motion_estimators.hpp:132
Definition: motion_estimators.hpp:69
Definition: motion_estimators.hpp:182
void setTermCriteria(const CvTermCriteria &term_criteria)
Definition: motion_estimators.hpp:97
BundleAdjusterRay()
Definition: motion_estimators.hpp:168
The n-dimensional matrix class.
Definition: core.hpp:1688
Definition: motion_estimators.hpp:165
CvTermCriteria termCriteria()
Definition: motion_estimators.hpp:96
Definition: types_c.h:997
const Mat refinementMask() const
Definition: motion_estimators.hpp:86
BundleAdjusterBase(int num_params_per_cam, int num_errs_per_measurement)
Definition: motion_estimators.hpp:100
Definition: motion_estimators.hpp:148
int num_errs_per_measurement_
Definition: motion_estimators.hpp:126
const MatchesInfo * pairwise_matches_
Definition: motion_estimators.hpp:129
MSize size
Definition: core.hpp:2006
void CV_EXPORTS waveCorrect(std::vector< Mat > &rmats, WaveCorrectKind kind)
GLenum GLint GLuint mask
Definition: tracking.hpp:132
int total_num_matches_
Definition: motion_estimators.hpp:123
Mat refinement_mask_
Definition: motion_estimators.hpp:120
void setRefinementMask(const Mat &mask)
Definition: motion_estimators.hpp:87
WaveCorrectKind
Definition: motion_estimators.hpp:180
std::string CV_EXPORTS matchesGraphAsString(std::vector< std::string > &pathes, std::vector< MatchesInfo > &pairwise_matches, float conf_threshold)