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