Expand description
§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: [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: [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: [tutorial_sfm_installation]
Modules§
Structs§
- BaseSFM
- base class BaseSFM declares a common API that would be used in a typical scene reconstruction scenario
- SFMLibmv
Euclidean Reconstruction - SFMLibmvEuclideanReconstruction class provides an interface with the Libmv Structure From Motion pipeline.
- libmv_
Camera Intrinsics Options - Data structure describing the camera model and its parameters.
- libmv_
Reconstruction Options - 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
Trait - Mutable methods for crate::sfm::BaseSFM
- BaseSFM
Trait Const - Constant methods for crate::sfm::BaseSFM
- SFMLibmv
Euclidean Reconstruction Trait - Mutable methods for crate::sfm::SFMLibmvEuclideanReconstruction
- SFMLibmv
Euclidean Reconstruction Trait Const - Constant methods for crate::sfm::SFMLibmvEuclideanReconstruction
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_ correspondences7_ point_ robust_ def - 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_ correspondences8_ point_ robust_ def - 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.
- import_
reconstruction_ def - 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 correspondences while performing autocalibration.
- reconstruct_
1 - Reconstruct 3d points from 2d correspondences while performing autocalibration.
- reconstruct_
2 - Reconstruct 3d points from 2d images while performing autocalibration.
- reconstruct_
3 - Reconstruct 3d points from 2d images while performing autocalibration.
- reconstruct_
1_ def - Reconstruct 3d points from 2d correspondences while performing autocalibration.
- reconstruct_
2_ def - Reconstruct 3d points from 2d images while performing autocalibration.
- reconstruct_
3_ def - Reconstruct 3d points from 2d images while performing autocalibration.
- reconstruct_
def - 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.