2014-09-06 36 views
0

我有一個由鄰接立方體的STL文件,像這樣:刪除內部面臨MeshLab,並不是所有的內部結構

http://www.mathworks.com.au/matlabcentral/fileexchange/screenshots/6499/original.jpg

我需要刪除多維數據集的所有共享的臉,如此結構變得連續堅實。

注意我不能只刪除所有的內部結構。物體是空心的,其內部結構必須保持。我只想刪除相鄰立方體的共享面。

有沒有辦法在MeshLab中做到這一點?謝謝,

回答

0

我試圖做同樣的事情,所以這裏有我如何做它:

得到邊界體素並將其轉換爲兩點:

surface= Volume- imerode(Volume, true(3)); 
indx=find(surface); 
[x,y,z]=ind2sub(size(Volume),indx); 
surface=horzcat(x,y,z); 

保存它作爲一個層文件

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文件,但是現在在這個點上,triyng可以選擇最好的。對於非凸面而言是你的。