2013-06-24 39 views
0

我有一個3D二進制圖像。假設分辨率爲dx,dy,dz毫米。如何將圖像上的歐幾里得距離轉換爲以毫米爲單位的距離。體素或像素到毫米的距離

Furhter,如果我使用行軍立方體算法計算了一個iso-surface。生成表面網格。兩個網格頂點之間的歐幾里德距離 - 如何將其轉換爲mm?

回答

0

如果我正確地閱讀你的問題,你有一些毫米的體素大小,這不一定是各向同性的(即體素不是常規的立方體)。

所以,如果每個像素的尺寸爲dx * dy * dz,你必須在位置(x1, y1, z1)(x2, y2, z2)這兩個體素,在你想找到毫米這兩個點之間的歐幾里得(直線)距離。

因此,首先將每個點獲得空間位置(調用這些s1s2

s1(x,y,z) = (x1 * dx, y1 * dy, z1 * dz),並
s2(x,y,z) = (x2 * dx, y2 * dy, z2 * dz)

然後以毫米爲單位的距離,d,這些點之間是則長度v,從s1s2

v(x,y,z) = (s2.x - s1.x, s2.y - s1.y, s2.z - s1.z)

距離d = sqrt(v.x^2 + v.y^2 + v.z^2)毫米。

+0

非常感謝(知道這非常有用),但我的問題更多的是以毫米爲單位的表面距離。使用行進立方體算法從圖像生成曲面。假定不再執行三角測量或平滑處理。 –

+0

@dr_rk這是一個類似的問題,你首先必須在兩個點之間尋找一條通過表面的路徑(非平凡),你可以通過查看所需方向上的連續最近頂點來近似,然後按照所述方法累積距離以上。無論您是使用步進立方體還是其他算法生成網格都不相關。 –

相關問題