我有一個3D二進制圖像。假設分辨率爲dx,dy,dz
毫米。如何將圖像上的歐幾里得距離轉換爲以毫米爲單位的距離。體素或像素到毫米的距離
Furhter,如果我使用行軍立方體算法計算了一個iso-surface。生成表面網格。兩個網格頂點之間的歐幾里德距離 - 如何將其轉換爲mm?
我有一個3D二進制圖像。假設分辨率爲dx,dy,dz
毫米。如何將圖像上的歐幾里得距離轉換爲以毫米爲單位的距離。體素或像素到毫米的距離
Furhter,如果我使用行軍立方體算法計算了一個iso-surface。生成表面網格。兩個網格頂點之間的歐幾里德距離 - 如何將其轉換爲mm?
如果我正確地閱讀你的問題,你有一些毫米的體素大小,這不一定是各向同性的(即體素不是常規的立方體)。
所以,如果每個像素的尺寸爲dx * dy * dz
,你必須在位置(x1, y1, z1)
和(x2, y2, z2)
這兩個體素,在你想找到毫米這兩個點之間的歐幾里得(直線)距離。
因此,首先將每個點獲得空間位置(調用這些s1
和s2
)
s1(x,y,z) = (x1 * dx, y1 * dy, z1 * dz)
,並
s2(x,y,z) = (x2 * dx, y2 * dy, z2 * dz)
然後以毫米爲單位的距離,d
,這些點之間是則長度v
,從s1
到s2
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)
毫米。
非常感謝(知道這非常有用),但我的問題更多的是以毫米爲單位的表面距離。使用行進立方體算法從圖像生成曲面。假定不再執行三角測量或平滑處理。 –
@dr_rk這是一個類似的問題,你首先必須在兩個點之間尋找一條通過表面的路徑(非平凡),你可以通過查看所需方向上的連續最近頂點來近似,然後按照所述方法累積距離以上。無論您是使用步進立方體還是其他算法生成網格都不相關。 –