Reconstruction#
Detailed Description#
Note
Notice that it is compiled only when Ceres Solver is correctly installed.
Check installation instructions in the following tutorial: tutorial_sfm_installation
Function Documentation#
reconstruct()#
void cv::sfm::reconstruct(
const std::vector< String > images,
OutputArray Ps,
OutputArray points3d,
InputOutputArray K,
bool is_projective = false )
#include <opencv2/sfm/reconstruct.hpp>
Reconstruct 3d points from 2d images while performing autocalibration.
This method calls below signature and extracts projection matrices from estimated K, R and t.
Note
The images must be ordered as they were an image sequence. Additionally, each frame should be as close as posible to the previous and posterior.
For now DAISY features are used in order to compute the 2d points tracks and it only works for 3-4 images.
Parameters
images— a vector of string with the images paths.Ps— Output vector with the 3x4 projections matrices of each image.points3d— Output array with estimated 3d points.K— Input/Output camera matrix \(K = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\). Input parameters used as initial guess.is_projective— if true, the cameras are supposed to be projective.
reconstruct()#
void cv::sfm::reconstruct(
const std::vector< String > images,
OutputArray Rs,
OutputArray Ts,
InputOutputArray K,
OutputArray points3d,
bool is_projective = false )
#include <opencv2/sfm/reconstruct.hpp>
Reconstruct 3d points from 2d images while performing autocalibration.
Internally calls libmv simple pipeline routine with some default parameters by instatiating SFMLibmvEuclideanReconstruction class.
Note
The images must be ordered as they were an image sequence. Additionally, each frame should be as close as posible to the previous and posterior.
For now DAISY features are used in order to compute the 2d points tracks and it only works for 3-4 images.
To see a working example for scene reconstruction, check the following tutorial: tutorial_sfm_scene_reconstruction.
Parameters
images— a vector of string with the images paths.Rs— Output vector of 3x3 rotations of the camera.Ts— Output vector of 3x1 translations of the camera.points3d— Output array with estimated 3d points.K— Input/Output camera matrix \(K = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\). Input parameters used as initial guess.is_projective— if true, the cameras are supposed to be projective.
reconstruct()#
void cv::sfm::reconstruct(
InputArrayOfArrays points2d,
OutputArray Ps,
OutputArray points3d,
InputOutputArray K,
bool is_projective = false )
#include <opencv2/sfm/reconstruct.hpp>
Reconstruct 3d points from 2d correspondences while performing autocalibration.
This method calls below signature and extracts projection matrices from estimated K, R and t.
Note
Tracks must be as precise as possible. It does not handle outliers and is very sensible to them.
Parameters
points2d— Input vector of vectors of 2d points (the inner vector is per image).Ps— Output vector with the 3x4 projections matrices of each image.points3d— Output array with estimated 3d points.K— Input/Output camera matrix \(K = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\). Input parameters used as initial guess.is_projective— if true, the cameras are supposed to be projective.
reconstruct()#
void cv::sfm::reconstruct(
InputArrayOfArrays points2d,
OutputArray Rs,
OutputArray Ts,
InputOutputArray K,
OutputArray points3d,
bool is_projective = false )
#include <opencv2/sfm/reconstruct.hpp>
Reconstruct 3d points from 2d correspondences while performing autocalibration.
Internally calls libmv simple pipeline routine with some default parameters by instatiating SFMLibmvEuclideanReconstruction class.
Note
Tracks must be as precise as possible. It does not handle outliers and is very sensible to them.
To see a working example for camera motion reconstruction, check the following tutorial: tutorial_sfm_trajectory_estimation.
Parameters
points2d— Input vector of vectors of 2d points (the inner vector is per image).Rs— Output vector of 3x3 rotations of the camera.Ts— Output vector of 3x1 translations of the camera.points3d— Output array with estimated 3d points.K— Input/Output camera matrix \(K = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\). Input parameters used as initial guess.is_projective— if true, the cameras are supposed to be projective.