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
detectFASTFeaturesDetect corners using FAST algorithm
detectHarrisFeaturesDetect corners using Harris–Stephens algorithm
detectMinEigenFeaturesDetect corners using minimum eigenvalue algorithm
detectMSERFeaturesDetect MSER features
detectSIFTFeaturesDetect scale invariant feature transform (SIFT) features (Since R2021b)
detectSURFFeaturesDetect SURF features
extractFeaturesExtract interest point descriptors
matchFeaturesFind matching features
matchFeaturesInRadiusFind matching features within specified radius (Since R2021a)
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 (Since R2020a)
worldpointsetManage 3-D to 2-D point correspondences (Since R2020b)
cameraIntrinsicsObject for storing intrinsic camera parameters
rigidtform3d3-D rigid geometric transformation (Since R2022b)
affinetform3d3-D affine geometric transformation (Since R2022b)

Estimate Camera Poses

estimateEssentialMatrixEstimate essential matrix from corresponding points in a pair of images
estimateFundamentalMatrixEstimate fundamental matrix from corresponding points in stereo images
estworldposeEstimate camera pose from 3-D to 2-D point correspondences (Since R2022b)
estrelposeCalculate relative rotation and translation between camera poses (Since R2022b)

Triangulate Image Points

pointTrackObject for storing matching points from multiple views
findTracksFind matched points across multiple views (Since R2020a)
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

bundleAdjustmentAdjust collection of 3-D points and camera poses
bundleAdjustmentMotionAdjust collection of 3-D points and camera poses using motion-only bundle adjustment (Since R2020a)
bundleAdjustmentStructureRefine 3-D points using structure-only bundle adjustment (Since R2020a)
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
rotmat2vec3dConvert 3-D rotation matrix to rotation vector (Since R2022b)
rotvec2mat3dConvert 3-D rotation vector to rotation matrix (Since R2022b)
quaternionCreate quaternion array (Since R2020a)



Apps for Camera Calibration