2014-11-04 154 views
0

我有使用wrl文件表示的3D表面。我已閱讀所需的信息。從文件中獲得以下數據:頂點,面,法線,紋理座標。將3D表面數據轉換爲2D範圍圖像

如何使用這些數據將其轉換爲2D距離圖像(與正常強度圖像相同,但每個像素都帶有底層表面的深度值)?我更喜歡用Matlab來解決這個問題,儘管一般的想法都是值得歡迎的。

回答

0

使用griddata

如果我理解正確,您有X,Y,Z數據並要將其轉換爲圖像,其中圖像強度是Z.

[ximg,yimg]=meshgrid(1:szX,1:szY); 
img = griddata(x,y,z,ximg,yimg); 
% normalize image, or set it at range you want 

,我認爲它應該工作。

+0

感謝您的回覆,Ander。我先試了一下(對不起,我忘了在帖子中提到)。但是griddata中的一個重要約束是網格點(來自meshgrid)必須是我們插入的3D曲面的一部分。就我而言,我所擁有的3D數據集中在其他地方(大部分x-y點都是負數)。爲了執行此操作,我試圖重新將我所具有的3D點雲(僅通過平移)重新定位到從meshgrid獲取的網格的中心附近。你覺得這怎麼樣 ? – Swami 2014-11-04 15:05:50

+0

@Swami Definetly。您應該1:將所有X-Y數據填充到以szX/2 szY/2爲中心,然後2:縮放數據,使頂點全部位於1:szX 1:szY(包含)範圍內。我認爲它太誇張了;) – 2014-11-04 15:14:33