itk三维坐标与一维index的转换关系

为了通过下标方式获取itk图像的值,需要将 [ x , y , z ] [x,y,z] [x,y,z]形式的坐标转换为 [ i n d e x ] [index] [index]形式,然后通过buffer获取。

情况1,已知[x0,y0,z0]

index
i m a g e _ a r r a y [ x 0 , y 0 , z 0 ] image\_array[x_0,y_0,z_0] image_array[x0,y0,z0]对应c++里面是 i n d e x = s i z e x × s i z e y × z 0 + s i z e x × y 0 + x 0 index = size_x\times size_y\times z0 + size_x\times y_0 + x_0 index=sizex×sizey×z0+sizex×y0+x0

情况2,已知index

x,y,z
z 0 = i n d e x / / ( s i z e x ∗ s i z e y ) z0 = index // (size_x *size_y) z0=index//(sizexsizey)
y 0 = ( i n d e x − ( s i z e x ∗ s i z e y ∗ z 0 ) ) / / s i z e x y0 = (index - (size_x*size_y*z0))//size_x y0=(index(sizexsizeyz0))//sizex
x 0 = ( i n d e x − s i z e x ∗ s i z e y ∗ z 0 − s i z e x ∗ y 0 ) x0 = (index - size_x*size_y*z0 - size_x*y0) x0=(indexsizexsizeyz0sizexy0)

你可能感兴趣的:(医学图像处理,itk)