添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

mapPoints

Build 3-D map of world points

Since R2023b

collapse all in page

Description

example

xyzPoints = mapPoints( vslam ) builds a sparse 3-D map of world points, xyzPoints , from the input images in the visual simultaneous localization and mapping (vSLAM) object vslam .

Examples

collapse all

Perform monocular visual simultaneous localization and mapping (vSLAM) using the data from the TUM RGB-D Benchmark . You can download the data to a temporary directory using a web browser or by running this code:

baseDownloadURL = "https://vision.in.tum.de/rgbd/dataset/freiburg3/rgbd_dataset_freiburg3_long_office_household.tgz"; 
dataFolder = fullfile(tempdir,"tum_rgbd_dataset",filesep); 
options = weboptions(Timeout=Inf);
tgzFileName = [dataFolder,"fr3_office.tgz"];
folderExists = exist(dataFolder,"dir");
% Create a folder in a temporary directory to save the downloaded file
if ~folderExists  
    mkdir(dataFolder) 
    disp("Downloading fr3_office.tgz (1.38 GB). This download can take a few minutes.") 
    websave(tgzFileName,baseDownloadURL,options); 
    % Extract contents of the downloaded file
    disp("Extracting fr3_office.tgz (1.38 GB) ...") 
    untar(tgzFileName,dataFolder); 
end

Create an pixelLabelImageDatastore object to store all the RGB images.

imageFolder = [dataFolder,"rgbd_dataset_freiburg3_long_office_household/rgb/"];
imds = imageDatastore(imageFolder);

Specify your camera intrinsic parameters, and use them to create a monocular visual SLAM object.

intrinsics = cameraIntrinsics([535.4 539.2],[320.1 247.6],[480 640]);
vslam = monovslam(intrinsics);

Process each image frame, and visualize the camera poses and 3-D map points.

for i = 1:numel(imds.Files)
    addFrame(vslam,readimage(imds,i))
    if hasNewKeyFrame(vslam)
        % Query 3-D map points and camera poses
        xyzPoints = mapPoints(vslam);
        [camPoses,viewIds] = poses(vslam);
        % Display 3-D map points and camera trajectory
        plot(vslam)
    % Get current status of system
    status = checkStatus(vslam);
    % Stop adding frames when tracking is lost
    if status == uint8(0)
        break
end 

Once all the frames have been processed, reset the system.

while ~isDone(vslam)
    plot(vslam)
reset(vslam)

Input Arguments

collapse all

Visual SLAM object, specified as a monovslam object.

Output Arguments

collapse all

3-D map of world points, returned as an M -by-3 matrix. M is the number of points, and each point is specified in the form

Version History

Introduced in R2023b

You have a modified version of this example. Do you want to open this example with your edits?

No, overwrite the modified version

You clicked a link that corresponds to this MATLAB command:

Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.