• 大小: 4KB
    文件类型: .m
    金币: 2
    下载: 1 次
    发布日期: 2021-05-28
  • 语言: Matlab
  • 标签: sfm  三维重建  MATLAB  

资源简介

此代码利用MATLAB编程实现三维点云的重建。

资源截图

代码片段和文件信息

clc;
clear;
run(‘C:\Users\Fxy\Desktop\vlfeat-0.9.20-bin\vlfeat-0.9.20\toolbox\vl_setup‘)
file_path =‘.\rect\‘;% 图像文件夹路径
img_path_list = dir(strcat(file_path‘*.jpg‘));%获取该文件夹中所有图像
ttt = length(img_path_list);%获取图像总数量
for num=1:ttt  
    image_name = img_path_list(num).name;% 图像名
    img(::num)=rgb2gray(imread(strcat(file_pathimage_name)));
%     img(::num)=single(img(::num));
end

K=[2900.120791.168;02890.56656.275;001];
cameraParams = cameraParameters(‘IntrinsicMatrix‘K‘);
img(::1) = undistortImage(img(::1) cameraParams);    
prevPoints_a = detectSURFFeatures(img(::1));
prevPoints_b = detectHarrisFeatures(img(::1));
% prevPoints = vl_sift(img(::1));
%prevPoints = detectMinEigenFeatures(img(::1));
%prevPoints = detectBRISKFeatures(img(::1));
prevFeatures_a = extractFeatures(img(::1)prevPoints_a);
prevFeatures_b = extractFeatures(img(::1)prevPoints_b);
prevLoc=[prevPoints_a.Location;prevPoints_b.Location];
vSet = viewSet;
viewId = 1;
vSet = addView(vSet viewId ‘Points‘ prevLoc ‘Orientation‘ ...
    eye(3 ‘like‘ prevLoc) ‘Location‘ ...
    zeros(1 3 ‘like‘ prevLoc));

for i = 2:ttt
    I = undistortImage(img(::i) cameraParams);                          %去畸变;
    currPoints_a= detectSURFFeatures(I);
    currPoints_b= detectHarrisFeatures(I);
%     currPoints_a.Location=round(currPoints_a.Location);
%     currPoints_b.Location=round(currPoints_b.Location);
%     for k=1:size(currPoints1)
%          if (ismember(currPoints.Location(k1)currPoints1.Location(:1)))
%              currPoints(k)=[];
%          end
%     end       
    currFeatures_a = extractFeatures(I currPoints_a);
    currFeatures_b = extractFeatures(I currPoints_b);
    indexPairs_a = matchFeatures(prevFeatures_a currFeatures_a);
    indexPairs_b= matchFeatures(prevFeatures_b currFeatures_b);
    indexPairs=vertcat(indexPairs_aindexPairs_b+size(currFea

评论

共有 条评论