我有一个stl文件,它由连续的多维数据集组成,如下所示:
我需要删除多维数据集的所有共享面,因此结构变成一个连续的实体。
注意我不能只删除所有内部结构。物体是空心的,必须保持其内部结构。我只想删除相邻立方体的共享面。
有没有办法在MeshLab中做到这一点?谢谢,
答案 0 :(得分:0)
我正在尝试做类似的事情,所以这里有我如何做到这一点:
获取边界体素并将其转换为点数:
surface= Volume- imerode(Volume, true(3));
indx=find(surface);
[x,y,z]=ind2sub(size(Volume),indx);
surface=horzcat(x,y,z);
将其另存为ply文件
function save_ply(filename,xyz)
fid=fopen(strcat(filename,'.ply'),'wt');
fprintf(fid,'ply\n');
fprintf(fid,'format ascii 1.0\n');
fprintf(fid,'element vertex %u\n',size(xyz,2));
fprintf(fid,'property float x\n');
fprintf(fid,'property float y\n');
fprintf(fid,'property float z\n');
fprintf(fid,'end_header\n');
for ii=1:size(xyz,2)
fprintf(fid,'%4f %4f %4f\n',xyz(1,ii),xyz(2,ii),xyz(3,ii));
end
end
然后你可以将点云加载到Meshlab。然后,您可以使用其中包含的数十种算法创建STL文件,但是现在即时通讯,选择最佳算法。对于你的非凸面。