基于点云数据的几何重建

网站首页    MATLAB    基于点云数据的几何重建

本文介绍基于点云数据的几何重建,包括重建二维点集的外包络多边形,以及重建三维点集的外包络多面体。用到的主要函数是alphaShape函数。

【例1】重建二维点集的外包络多边形(alpha shape)。

>> t = pi/12:pi/12:2*pi;  % 角度向量
>> r = (0:5)';            % 半径向量
>> x1 = r*cos(t);         % x数据矩阵
>> y1 = r*sin(t);         % y数据矩阵
>> x1 = x1(:);            % 把x拉长为列向量
>> y1 = y1(:);            % 把y拉长为列向量
>> x = [x1; x1+15];       % x数据向量
>> y = [y1; y1];          % y数据向量
>> figure;
>> plot(x,y,'.')          % 绘制散点图
>> axis equal
>> shp = alphaShape(x,y,1); % 重建外包络多边形
>> figure;>> plot(shp)              % 绘制外包络多边形

二维点云数据散点图如下:

二维点云数据散点图

 

二维点云数据外包络多边形如下:

二维点云数据外包络多边形

 

【例2】三维点集的外包络多面体。

>> load Horse.mat    % 加载三维点云数据
>> figure;
>> plot3(p(:,1),p(:,2),p(:,3),'g.');  % 绘制三维点云数据的散点图
>> axis tight;                        % 设置坐标显示为紧凑模式   
>> view(130,10);                      % 设置视点位置
>> figure;
>> shp = alphaShape(p(:,1),p(:,2),p(:,3),0.01); % 重建外包络多面体
>> h = plot(shp);                     % 绘制外包络多面体
>> set(h,'EdgeColor','none');         % 设置线条颜色为无
>> camlight(-157,18);                 % 设置灯光
>> axis tight;
>> view(130,10);

三维点云数据散点图如下:

三维点云数据散点图

 

三维点云数据外包络多面体如下:

三维点云数据外包络多面体

 

注:三维点云数据文件Horse.mat不是MATLAB自带的文件,若有需要,请在本文下方留言。

2019年11月4日 21:34
浏览量:0