前言
常见CT图像格式有.mhd(.raw),.dcm,.nii.gz。
进行深度学习研究时,一般都需由CT图像获取数组。
CT图像的direction通常为(1,0,0,0,1,0,0,0,1),但也有其他情况,比如(-1,0,0,0,-1,0,0,0,1)。
若:
(1)已知CT图像中某点的世界坐标,想获取其像素坐标;
或(2)已知某点的像素坐标,想获取其世界坐标;
则需考虑direction的影响!
处理办法
-
已知CT图像中某点的世界坐标w_co,想获取其像素坐标v_co
v_co = np.absolute(w_co - origin) / spacing -
已知某点的像素坐标v_co,想获取其世界坐标w_co()
case1. direction=(1,0,0,0,1,0,0,0,1)
w_co = origin + v_co * spacing
case2. direction=(-1,0,0,0,-1,0,0,0,1)
w_x = origin_x - v_xspacing_x + shape[2]
w_y = origin_y - v_yspacing_y + shape[1]
w_z = origin_z + v_x*spacing_z
其他情况,以此类推~ -
附:根据direction翻转数组的代码
# 根据direction, 判断/调整数组 def adjust_array(direction, array): if direction[0] == -1.0: np.flip(array, axis=2) if direction[4] == -1.0: np.flip(array, axis=1) if direction[8] == -1.0: np.flip(array, axis=0) return array