我必须生成 3D 点云的网格。所以我用这个delaunay
函数来执行点的三角剖分。激光雷达数据是人头扫描的结果。
dt = delaunay(X,Y);
trisurf(dt,X,Y,Z);
当我使用delaunay
两个输入时,它给了我输出但并不完美。所以我使用了三个输入 ( X,Y,Z
)
dt = delaunay(X,Y,Z);
trisurf(dt,X,Y,Z);
但现在结果变得更糟了。我不知道是什么问题?
这是我编写的完整代码:
load Head_cloud_point.txt;
data = Head_cloud_point;
for i = 1 : 3
X = data(:, 1);
end
for i = 1 : 3
Y = data(:, 2);
end
for i = 1 : 3
Z = data(:, 3);
end
[m n] = size(X);
[o p] = size(Y);
[r s] = size(Z);
[XI,YI]= meshgrid(X(m,n),Y(o,p));
ZI = interp2(X,Y,Z,XI,YI);
% dt = delaunay(X,Y);
% trisurf(dt,X,Y,ZI);
Head_cloud_point
是具有 X,Y,Z 坐标的文件。我必须使用这些坐标生成网格。