Updated bundle adjustment in stitching module: 1) it minimizes reprojection error now, 2) it minimizes error over focal, aspect, p.p.x, p.p.y parameters. Refactored and updated warpers.
This commit is contained in:
@@ -47,17 +47,29 @@ using namespace std;
|
||||
namespace cv {
|
||||
namespace detail {
|
||||
|
||||
CameraParams::CameraParams() : focal(1), R(Mat::eye(3, 3, CV_64F)), t(Mat::zeros(3, 1, CV_64F)) {}
|
||||
CameraParams::CameraParams() : focal(1), aspect(1), ppx(0), ppy(0),
|
||||
R(Mat::eye(3, 3, CV_64F)), t(Mat::zeros(3, 1, CV_64F)) {}
|
||||
|
||||
CameraParams::CameraParams(const CameraParams &other) { *this = other; }
|
||||
|
||||
const CameraParams& CameraParams::operator =(const CameraParams &other)
|
||||
{
|
||||
focal = other.focal;
|
||||
ppx = other.ppx;
|
||||
ppy = other.ppy;
|
||||
aspect = other.aspect;
|
||||
R = other.R.clone();
|
||||
t = other.t.clone();
|
||||
return *this;
|
||||
}
|
||||
|
||||
Mat CameraParams::K() const
|
||||
{
|
||||
Mat_<double> k = Mat::eye(3, 3, CV_64F);
|
||||
k(0,0) = focal; k(0,2) = ppx;
|
||||
k(1,1) = focal * aspect; k(1,2) = ppy;
|
||||
return k;
|
||||
}
|
||||
|
||||
} // namespace detail
|
||||
} // namespace cv
|
||||
|
Reference in New Issue
Block a user