/* Retrieve refined camera intrinsics from libmv to blender. */ static void reconstruct_retrieve_libmv_intrinsics(MovieReconstructContext *context, MovieTracking *tracking) { struct libmv_Reconstruction *libmv_reconstruction = context->reconstruction; struct libmv_CameraIntrinsics *libmv_intrinsics = libmv_reconstructionExtractIntrinsics(libmv_reconstruction); libmv_CameraIntrinsicsOptions camera_intrinsics_options; libmv_cameraIntrinsicsExtractOptions(libmv_intrinsics, &camera_intrinsics_options); tracking_trackingCameraFromIntrinscisOptions(tracking, &camera_intrinsics_options); }
/* Retrieve refined camera intrinsics from libmv to blender. */ static void reconstruct_retrieve_libmv_intrinsics(MovieReconstructContext *context, MovieTracking *tracking) { struct libmv_Reconstruction *libmv_reconstruction = context->reconstruction; struct libmv_CameraIntrinsics *libmv_intrinsics = libmv_reconstructionExtractIntrinsics(libmv_reconstruction); float aspy = 1.0f / tracking->camera.pixel_aspect; double focal_length, principal_x, principal_y, k1, k2, k3; int width, height; libmv_cameraIntrinsicsExtract(libmv_intrinsics, &focal_length, &principal_x, &principal_y, &k1, &k2, &k3, &width, &height); tracking->camera.focal = focal_length; tracking->camera.principal[0] = principal_x; tracking->camera.principal[1] = principal_y / (double)aspy; tracking->camera.k1 = k1; tracking->camera.k2 = k2; tracking->camera.k3 = k3; }