[][src]Module opencv::sfm

Structure From Motion

The opencv_sfm module contains algorithms to perform 3d reconstruction from 2d images.

The core of the module is based on a light version of Libmv originally developed by Sameer Agarwal and Keir Mierle.

Whats is libmv?

libmv, also known as the Library for Multiview Reconstruction (or LMV), is the computer vision backend for Blender's motion tracking abilities. Unlike other vision libraries with general ambitions, libmv is focused on algorithms for match moving, specifically targeting Blender as the primary customer. Dense reconstruction, reconstruction from unorganized photo collections, image recognition, and other tasks are not a focus of libmv.

Development

libmv is officially under the Blender umbrella, and so is developed on developer.blender.org. The source repository can get checked out independently from Blender.

This module has been originally developed as a project for Google Summer of Code 2012-2015.

Note:

  • Notice that it is compiled only when Eigen, GLog and GFlags are correctly installed.

Check installation instructions in the following tutorial: @ref tutorial_sfm_installation

Conditioning

Fundamental

Input/Output

Numeric

Projection

Robust Estimation

Triangulation

Reconstruction

Note:

  • Notice that it is compiled only when Ceres Solver is correctly installed.

Check installation instructions in the following tutorial: @ref tutorial_sfm_installation

Simple Pipeline

Note:

  • Notice that it is compiled only when Ceres Solver is correctly installed.

Check installation instructions in the following tutorial: @ref tutorial_sfm_installation

Structs

SFMLibmvEuclideanReconstruction

SFMLibmvEuclideanReconstruction class provides an interface with the Libmv Structure From Motion pipeline.

libmv_CameraIntrinsicsOptions

Data structure describing the camera model and its parameters.

libmv_ReconstructionOptions

Data structure describing the reconstruction options.

Constants

SFM_DISTORTION_MODEL_DIVISION
SFM_DISTORTION_MODEL_POLYNOMIAL
SFM_IO_BUNDLER
SFM_IO_OPENMVG
SFM_IO_OPENSFM
SFM_IO_THEIASFM
SFM_IO_VISUALSFM
SFM_REFINE_FOCAL_LENGTH
SFM_REFINE_PRINCIPAL_POINT
SFM_REFINE_RADIAL_DISTORTION_K1
SFM_REFINE_RADIAL_DISTORTION_K2

Traits

BaseSFM

base class BaseSFM declares a common API that would be used in a typical scene reconstruction scenario

Functions

apply_transformation_to_points

Apply Transformation to points.

compute_orientation

Computes Absolute or Exterior Orientation (Pose Estimation) between 2 sets of 3D point.

depth

Returns the depth of a point transformed by a rigid transform.

essential_from_fundamental

Get Essential matrix from Fundamental and Camera matrices.

essential_from_rt

Get Essential matrix from Motion (R's and t's ).

euclidean_to_homogeneous

Converts points from Euclidean to homogeneous space. E.g., ((x,y)->(x,y,1))

fundamental_from_correspondences7_point_robust

Estimate robustly the fundamental matrix between two dataset of 2D point (image coords space).

fundamental_from_correspondences8_point_robust

Estimate robustly the fundamental matrix between two dataset of 2D point (image coords space).

fundamental_from_essential

Get Essential matrix from Fundamental and Camera matrices.

fundamental_from_projections

Get Fundamental matrix from Projection matrices.

homogeneous_to_euclidean

Converts point coordinates from homogeneous to euclidean pixel coordinates. E.g., ((x,y,z)->(x/z, y/z))

import_reconstruction

Import a reconstruction file.

isotropic_preconditioner_from_points

Point conditioning (isotropic).

k_rt_from_projection

Get K, R and t from projection matrix P, decompose using the RQ decomposition.

mean_and_variance_along_rows

Computes the mean and variance of a given matrix along its rows.

motion_from_essential

Get Motion (R's and t's ) from Essential matrix.

motion_from_essential_choose_solution

Choose one of the four possible motion solutions from an essential matrix.

normalize_fundamental

Normalizes the Fundamental matrix.

normalize_isotropic_points

This function normalizes points. (isotropic).

normalize_points

This function normalizes points (non isotropic).

normalized_eight_point_solver

Estimate the fundamental matrix between two dataset of 2D point (image coords space).

preconditioner_from_points

Point conditioning (non isotropic).

projection_from_k_rt

Get projection matrix P from K, R and t.

projections_from_fundamental

Get projection matrices from Fundamental matrix

reconstruct

Reconstruct 3d points from 2d images while performing autocalibration.

reconstruct_1

Reconstruct 3d points from 2d images while performing autocalibration.

reconstruct_2

Reconstruct 3d points from 2d correspondences while performing autocalibration.

reconstruct_3

Reconstruct 3d points from 2d correspondences while performing autocalibration.

relative_camera_motion

Computes the relative camera motion between two cameras.

skew

Returns the 3x3 skew symmetric matrix of a vector.

triangulate_points

Reconstructs bunch of points by triangulation.