双目视觉三维重建-Matlab实现

复制代码
% 读取彩色图像
img_L = imread("L06.bmp");
img_R = imread("R06.bmp");
load('stereoParams.mat');
% 矫正左右图像,利用导入的立体相机参数
[L_Rect, R_Rect] = rectifyStereoImages(img_L, img_R, stereoParams2);
%显示并画线检测是否对齐
%figure;imshowLine(uint8([L_Rect R_Rect]),50, 2);        

%利用矫正后的左右图生成立体图像
Anaglyph = stereoAnaglyph(L_Rect, R_Rect);
%figure;imshow(Anaglyph);

% 使用imtool确定视差范围值(行坐标之差max=990-490=500)这里取512,但是matlab只能取128怎么办???
%figure;imtool(Anaglyph);
disparityRange=[0, 128];

%利用矫正后的灰度图生成视差图
% Minimum value of uniqueness = 20
disparityMap_t20 = disparitySGM(L_Rect, R_Rect, 'DisparityRange', disparityRange,'UniquenessThreshold',20);
%figure;imshow(disparityMap_t20, disparityRange);title('disp t20');colormap jet; colorbar;

% Minimum value of uniqueness = 15
disparityMap_t15 = disparitySGM(L_Rect, R_Rect, 'DisparityRange', disparityRange, 'UniquenessThreshold', 15);
figure; imshow(disparityMap_t15, disparityRange); title('disp t15'); colormap jet; colorbar;

% Minimum value of uniqueness = 10
disparityMap_t10 = disparitySGM(L_Rect, R_Rect, 'DisparityRange', disparityRange, 'UniquenessThreshold', 10);
%figure; imshow(disparityMap_t10, disparityRange); title('disp t10'); colormap jet; colorbar;

% Minimum value of uniqueness = 5
disparityMap_t5 = disparitySGM(L_Rect, L_Rect, 'DisparityRange', disparityRange, 'UniquenessThreshold', 5);
%figure; imshow(disparityMap_t5, disparityRange); title('disp t5'); colormap jet; colorbar;

% Minimum value of uniqueness = 0
disparityMap_t0 = disparitySGM(L_Rect, L_Rect, 'DisparityRange', disparityRange, 'UniquenessThreshold', 0);
%figure; imshow(disparityMap_t0, disparityRange); title('disp t0'); colormap jet; colorbar;

%利用视差图重建3d图
points3D = reconstructScene(disparityMap_t15, stereoParams2);

%将距离单位由 mm->m
points3D = points3D ./ 1000;

%存储3D图的点云数据
ptClound = pointCloud(points3D, 'color',img_L);

%使用pcplayer观察点云图
player3D = pcplayer([-1, 1], [-1, 1], [0, 2], 'VerticalAxis','Y','VerticalAxisDir','Up');
view(player3D,ptClound);
复制代码

参考链接:https://codeantenna.com/a/l5uGM2rE1f

posted @   路人加  阅读(136)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示