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