mirror of
https://github.com/opencv/opencv_contrib.git
synced 2025-10-20 04:25:42 +08:00
SFM::reconstruct - decompose K matrix correctly
This commit is contained in:
@@ -55,7 +55,8 @@ enum {
|
|||||||
|
|
||||||
/** @brief Data structure describing the camera model and its parameters.
|
/** @brief Data structure describing the camera model and its parameters.
|
||||||
@param _distortion_model Type of camera model.
|
@param _distortion_model Type of camera model.
|
||||||
@param _focal_length focal length of the camera (in pixels).
|
@param _focal_length_x focal length of the camera (in pixels).
|
||||||
|
@param _focal_length_y focal length of the camera (in pixels).
|
||||||
@param _principal_point_x principal point of the camera in the x direction (in pixels).
|
@param _principal_point_x principal point of the camera in the x direction (in pixels).
|
||||||
@param _principal_point_y principal point of the camera in the y direction (in pixels).
|
@param _principal_point_y principal point of the camera in the y direction (in pixels).
|
||||||
@param _polynomial_k1 radial distortion parameter.
|
@param _polynomial_k1 radial distortion parameter.
|
||||||
@@ -73,7 +74,8 @@ class CV_EXPORTS_W_SIMPLE libmv_CameraIntrinsicsOptions
|
|||||||
public:
|
public:
|
||||||
CV_WRAP
|
CV_WRAP
|
||||||
libmv_CameraIntrinsicsOptions(const int _distortion_model=0,
|
libmv_CameraIntrinsicsOptions(const int _distortion_model=0,
|
||||||
const double _focal_length=0,
|
const double _focal_length_x=0,
|
||||||
|
const double _focal_length_y=0,
|
||||||
const double _principal_point_x=0,
|
const double _principal_point_x=0,
|
||||||
const double _principal_point_y=0,
|
const double _principal_point_y=0,
|
||||||
const double _polynomial_k1=0,
|
const double _polynomial_k1=0,
|
||||||
@@ -84,7 +86,8 @@ public:
|
|||||||
: distortion_model(_distortion_model),
|
: distortion_model(_distortion_model),
|
||||||
image_width(2*_principal_point_x),
|
image_width(2*_principal_point_x),
|
||||||
image_height(2*_principal_point_y),
|
image_height(2*_principal_point_y),
|
||||||
focal_length(_focal_length),
|
focal_length_x(_focal_length_x),
|
||||||
|
focal_length_y(_focal_length_y),
|
||||||
principal_point_x(_principal_point_x),
|
principal_point_x(_principal_point_x),
|
||||||
principal_point_y(_principal_point_y),
|
principal_point_y(_principal_point_y),
|
||||||
polynomial_k1(_polynomial_k1),
|
polynomial_k1(_polynomial_k1),
|
||||||
@@ -103,7 +106,8 @@ public:
|
|||||||
// Common settings of all distortion models.
|
// Common settings of all distortion models.
|
||||||
CV_PROP_RW int distortion_model;
|
CV_PROP_RW int distortion_model;
|
||||||
CV_PROP_RW int image_width, image_height;
|
CV_PROP_RW int image_width, image_height;
|
||||||
CV_PROP_RW double focal_length;
|
CV_PROP_RW double focal_length_x;
|
||||||
|
CV_PROP_RW double focal_length_y;
|
||||||
CV_PROP_RW double principal_point_x, principal_point_y;
|
CV_PROP_RW double principal_point_x, principal_point_y;
|
||||||
|
|
||||||
// Radial distortion model.
|
// Radial distortion model.
|
||||||
|
@@ -203,8 +203,8 @@ static bool selectTwoKeyframesBasedOnGRICAndVariance(
|
|||||||
static void libmv_cameraIntrinsicsFillFromOptions(
|
static void libmv_cameraIntrinsicsFillFromOptions(
|
||||||
const libmv_CameraIntrinsicsOptions* camera_intrinsics_options,
|
const libmv_CameraIntrinsicsOptions* camera_intrinsics_options,
|
||||||
CameraIntrinsics* camera_intrinsics) {
|
CameraIntrinsics* camera_intrinsics) {
|
||||||
camera_intrinsics->SetFocalLength(camera_intrinsics_options->focal_length,
|
camera_intrinsics->SetFocalLength(camera_intrinsics_options->focal_length_x,
|
||||||
camera_intrinsics_options->focal_length);
|
camera_intrinsics_options->focal_length_y);
|
||||||
|
|
||||||
camera_intrinsics->SetPrincipalPoint(
|
camera_intrinsics->SetPrincipalPoint(
|
||||||
camera_intrinsics_options->principal_point_x,
|
camera_intrinsics_options->principal_point_x,
|
||||||
|
@@ -69,7 +69,8 @@ namespace sfm
|
|||||||
|
|
||||||
// Camera data
|
// Camera data
|
||||||
Matx33d Ka = K.getMat();
|
Matx33d Ka = K.getMat();
|
||||||
const double focal_length = Ka(0,0);
|
const double focal_length_x = Ka(0,0);
|
||||||
|
const double focal_length_y = Ka(1,1);
|
||||||
const double principal_x = Ka(0,2), principal_y = Ka(1,2), k1 = 0, k2 = 0, k3 = 0;
|
const double principal_x = Ka(0,2), principal_y = Ka(1,2), k1 = 0, k2 = 0, k3 = 0;
|
||||||
|
|
||||||
// Set reconstruction options
|
// Set reconstruction options
|
||||||
@@ -77,7 +78,8 @@ namespace sfm
|
|||||||
|
|
||||||
libmv_CameraIntrinsicsOptions camera_instrinsic_options =
|
libmv_CameraIntrinsicsOptions camera_instrinsic_options =
|
||||||
libmv_CameraIntrinsicsOptions(SFM_DISTORTION_MODEL_POLYNOMIAL,
|
libmv_CameraIntrinsicsOptions(SFM_DISTORTION_MODEL_POLYNOMIAL,
|
||||||
focal_length, principal_x, principal_y,
|
focal_length_x, focal_length_y,
|
||||||
|
principal_x, principal_y,
|
||||||
k1, k2, k3);
|
k1, k2, k3);
|
||||||
|
|
||||||
//-- Instantiate reconstruction pipeline
|
//-- Instantiate reconstruction pipeline
|
||||||
|
Reference in New Issue
Block a user