2015-01-21 186 views
0

我有一個關於將Matlab中製作的3D圖像導出爲任何其他3D格式(u3D,collada,Fbx)的問題。 我有一堆圖像(CT圖像),我使用Matlab中的等值面方法來獲得3D體繪製。 的代碼如下:將3D圖像從Matlab導出到u3D或任何其他3D格式

p_bone=patch(isosurface(volume_gabbia,0));%create isosurface patch 
isonormals(volume_gabbia,p_bone)%compute and set normals 
set(p_bone,'FaceColor','m','EdgeColor','none')%set surface props 
daspect([1 1 1])        
view(3), axis vis3d tight, box on, grid on  
camproj perspective       
camlight, lighting phong, alpha(.2) 

volume_gabbia是圖像的堆疊僅包含胸腔。 結果是一個圖像(.fig)卷,我可以旋轉,移動,ecc ...

現在我需要將這個3D卷導出爲3D文件(u3D r類似)。 我試圖使用Fig2u3d文件(http://it.mathworks.com/matlabcentral/fileexchange/37640-export-figure-to-3d-interactive-pdf),但我得到以下錯誤:

fig2u3d No surfaces found. Preprocessing patch No.1 Undefined function 'ddisp' for input arguments of type 'char'.

Error in u3d_pre_patch>single_patch_preprocessor (line 115) ddisp('Patch: Fixing face color')

Error in u3d_pre_patch (line 70) [v, f, fvx, r] = single_patch_preprocessor(h);

Error in fig2u3d (line 195) [patch_vertices, patch_faces, patch_facevertexcdata, patch_renderers] = u3d_pre_patch(ax);

有誰知道我可以從MATLAB輸出3D圖像?

+1

嘗試導出爲.stl(查看文件交換),它支持得更好。然後用meshlab進行轉換。 – Thomas 2015-01-21 12:08:55

+0

非常感謝您的幫助。 – 2015-01-21 13:07:57

+0

我做到了,完美解決問題。我真的很感謝你的幫助 – 2015-01-21 13:08:34

回答

1

嘗試導出爲.stl(查看文件交換),它支持得更好。然後用meshlab轉換成u3d。

+0

嗯,對不起,最後一個問題。現在在您的幫助下,我成功導出了我需要的三個等值面。這些在三個不同的stl文件中。現在在Meshlab中,我一起加載了三個網格,並且我只想將它們全部導出到一個collada文件中,但是當我這樣做時,Meshlab使我爲每個網格創建一個collada文件,而不是使用三個網格創建一個collada文件。你能幫我麼?你知道如何解決這個問題嗎?非常感謝你 – 2015-01-22 19:45:59

+0

打開圖層面板(Ctrl + L)。右鍵單擊其中一個圖層並選擇「拼合可見圖層」 - 這將合併所有網格部分。然後「導出爲」... – Thomas 2015-01-22 19:48:39

0

I unintendedly introduced在維護期間致電ddisp。 函數ddisp是用於disp的本地方便包裝器,用於全局過濾調試輸出(matlab中沒有任何適當的logging基礎結構)。

固定爲e15999。感謝您報告它。