我正在使用MRI体积(多切片)。
使用。..
vol, affine_3d = dicom_numpy.combine_slices(dicom_slices)
... 我能够检索允许将体素坐标(i,j,k)转换为患者坐标(x,y,z)的3D仿射矩阵。
<img alt="在这里输入图像描述"src="https://i.stack.imgur.com/pnAt2.png缧/>
但是,我的最终范围是做相反的事情:将患者坐标(x,y,z)转换为体素坐标(i,j,k)。 因此,我计算了逆仿射矩阵:
affine3d_inv = np.linalg.inv(affine3d)
但是,当我将一个点的(x,y,z,1)坐标乘以逆仿射矩阵时,相应的输出不正确。
例如,如果点具有坐标(-177.802,-136.329,19.604,1),我得到的是体素坐标(-32.939,191.183,24.091,1),这是不正确的(因为a)单位不是离散的,b)一些坐标是负的,c)我的体积有14个切片,
我一直在努力理解我做错了什么,但没有结果。