Main Content

Structure from Motion

3-D reconstruction from multiple views

Structure from Motion (SfM) is the process of estimating the 3-D structure of a scene from a set of 2-D images. For more details, see Implement Visual SLAM in MATLAB.


Camera CalibratorEstimate geometric parameters of a single camera
Stereo Camera CalibratorEstimate geometric parameters of a stereo camera


expand all

detectBRISKFeaturesDetect BRISK features and return BRISKPoints object
detectFASTFeaturesDetect corners using FAST algorithm and return cornerPoints object
detectHarrisFeaturesDetect corners using Harris–Stephens algorithm and return cornerPoints object
detectMinEigenFeaturesDetect corners using minimum eigenvalue algorithm and return cornerPoints object
detectMSERFeaturesDetect MSER features and return MSERRegions object
detectSIFTFeaturesDetect scale invariant feature transform (SIFT) features and return SIFTPoints object
detectSURFFeaturesDetect SURF features and return SURFPoints object
extractFeaturesExtract interest point descriptors
matchFeaturesFind matching features
matchFeaturesInRadiusFind matching features within specified radius
vision.PointTrackerTrack points in video using Kanade-Lucas-Tomasi (KLT) algorithm

Store Image and Camera Data

imageviewsetManage data for structure-from-motion, visual odometry, and visual SLAM
worldpointsetManage 3-D to 2-D point correspondences
cameraIntrinsics Object for storing intrinsic camera parameters
rigid3d3-D rigid geometric transformation
affine3d 3-D affine geometric transformation

Estimate Camera Poses

estimateEssentialMatrixEstimate essential matrix from corresponding points in a pair of images
estimateFundamentalMatrixEstimate fundamental matrix from corresponding points in stereo images
estimateWorldCameraPoseEstimate camera pose from 3-D to 2-D point correspondences
relativeCameraPoseCompute relative rotation and translation between camera poses

Triangulate Image Points

pointTrackObject for storing matching points from multiple views
findTracksFind matched points across multiple views
triangulate3-D locations of undistorted matching points in stereo images
triangulateMultiview3-D locations of world points matched across multiple images

Optimize Camera Poses and 3-D Points

bundleAdjustmentRefine 3-D points and camera poses
bundleAdjustmentMotionRefine camera pose using motion-only bundle adjustment
bundleAdjustmentStructureRefine 3-D points using structure-only bundle adjustment
stereoAnaglyphCreate red-cyan anaglyph from stereo pair of images
pcshowPlot 3-D point cloud
plotCameraPlot a camera in 3-D coordinates
showMatchedFeaturesDisplay corresponding feature points
rotationMatrixToVectorConvert 3-D rotation matrix to rotation vector
rotationVectorToMatrixConvert 3-D rotation vector to rotation matrix


Apps for Camera Calibration

Using the Single Camera Calibrator App

Estimate camera intrinsics, extrinsics, and lens distortion parameters.

Using the Stereo Camera Calibrator App

Calibrate a stereo camera, which you can then use to recover depth from images.

Visual Odometry

Monocular Visual Odometry

Determine location and orientation of a camera by analyzing a sequence of images.

Monocular Visual Simultaneous Localization and Mapping

Visual simultaneous localization and mapping (vSLAM).


Coordinate Systems

Specify pixel Indices, spatial coordinates, and 3-D coordinate systems

Point Feature Types

Choose functions that return and accept points objects for several types of features

Local Feature Detection and Extraction

Learn the benefits and applications of local feature detection and extraction.

Structure from Motion Overview

Estimate three-dimensional structures from two-dimensional image sequences

Implement Visual SLAM in MATLAB

Understand the visual simultaneous localization and mapping (vSLAM) workflow and how to implement it using MATLAB.

Featured Examples