2013-06-24 19 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这是一个类似的问题,你首先必须在两个点之间寻找一条通过表面的路径(非平凡),你可以通过查看所需方向上的连续最近顶点来近似,然后按照所述方法累积距离以上。无论您是使用步进立方体还是其他算法生成网格都不相关。 –

相关问题