小编TRI*_*RAN的帖子

从两个2D图像重建3D场景

这是我第一次进行图像处理.所以我有很多问题:我有两张照片是从不同的位置拍摄的,一张来自左边,另一张来自右边,如下图所示.[![在此处输入图像说明] [1]] [1]

第1步:使用imread函数读取图像

  I1 = imread('DSC01063.jpg');

  I2 = imread('DSC01064.jpg');
Run Code Online (Sandbox Code Playgroud)

第2步:在matlab中使用相机校准器应用程序来获取相机参数

  load cameraParams.mat 
Run Code Online (Sandbox Code Playgroud)

第3步:使用undistortImage函数删除镜头失真

  [I1, newOrigin1] = undistortImage(I1, cameraParams, 'OutputView', 'same');

  [I2, newOrigin2] = undistortImage(I2, cameraParams, 'OutputView', 'same');
Run Code Online (Sandbox Code Playgroud)

步骤4:使用detectSURFFeatures功能检测特征点

  imagePoints1 = detectSURFFeatures(rgb2gray(I1), 'MetricThreshold', 600);

  imagePoints2 = detectSURFFeatures(rgb2gray(I2), 'MetricThreshold', 600);
Run Code Online (Sandbox Code Playgroud)

步骤5:使用extractFeatures函数提取特征描述符

  features1 = extractFeatures(rgb2gray(I1), imagePoints1);

  features2 = extractFeatures(rgb2gray(I2), imagePoints2);
Run Code Online (Sandbox Code Playgroud)

步骤6:使用matchFeatures功能匹配功能

  indexPairs = matchFeatures(features1, features2, 'MaxRatio', 1);

  matchedPoints1 = imagePoints1(indexPairs(:, 1));

  matchedPoints2 = imagePoints2(indexPairs(:, 2));
Run Code Online (Sandbox Code Playgroud)

从那里,我怎样才能构建3D点云?在步骤2中,我使用了图片附件中的棋盘来校准相机[![在此处输入图像说明] [2]] [2]

方形尺寸是23毫米,并从cameraParams.mat我知道固有矩阵(或相机校准矩阵K),其形式K …

matlab computer-vision 3d-reconstruction matlab-cvst

5
推荐指数
1
解决办法
905
查看次数