Matlab DICOM:如何对不同来源的多模态数据进行重采样?

Matlab DICOM:如何对不同来源的多模态数据进行重采样?,matlab,image-processing,resampling,image-registration,medical-imaging,Matlab,Image Processing,Resampling,Image Registration,Medical Imaging,我有一个受试者的2组DICOM图像数据,包括同时进行的PET扫描和CT扫描。参考UID的框架是不同的,我认为这意味着它们的参考来源是不同的。这样就无法比较“图像位置患者”标签 我想做的是对两幅图像进行重采样,使它们的空间尺寸相等,像素尺寸相等。这项任务似乎相对简单,但因为它们的起源不同 对于被视为代表同一对象的任意两幅图像A和B,配准是指为A中的每个像素/地标识别B中的等效像素/地标的行为 假设A和B中的每个像素都可以嵌入到坐标系中,配准通常需要变换A,以便变换后,A中每个像素的坐标与B中等

我有一个受试者的2组DICOM图像数据,包括同时进行的PET扫描和CT扫描。参考UID的框架是不同的,我认为这意味着它们的参考来源是不同的。这样就无法比较“图像位置患者”标签

我想做的是对两幅图像进行重采样,使它们的空间尺寸相等,像素尺寸相等。这项任务似乎相对简单,但因为它们的起源不同

  • 对于被视为代表同一对象的任意两幅图像A和B,配准是指为A中的每个像素/地标识别B中的等效像素/地标的行为

  • 假设A和B中的每个像素都可以嵌入到坐标系中,配准通常需要变换A,以便变换后,A中每个像素的坐标与B中等效像素的坐标重合(即,目标是两个对象在该坐标空间中重叠)

  • 等轴测变换是应用变换后,A中任意两个像素之间的距离和B中等效两个像素之间的距离不变的变换。例如,空间中的旋转、反射(即镜像)和平移(即在特定方向上移动对象)都是等轴测变换。仅应用等距变换的配准算法被称为刚性的

  • 仿射变换与等轴测变换类似,但也可能涉及缩放(即,对象的大小也可以增大或缩小)

  • 在医学成像中,如果A和B是在不同的时间获得的,则变换不太可能是简单的仿射变换或等距变换。例如,在扫描A时,患者的手臂放在侧边,在扫描B时,患者的手臂放在头上。由于等效点之间的距离发生了变化(例如,在每种情况下,头与手之间和手与脚之间的距离),因此没有会导致A与B完全重叠的刚性配准。因此,需要使用更精细的非刚性配准算法

  • 在您的例子中,A和B是在同一台机器的同一扫描会话中获得的,这意味着这是一个合理的假设,即转换将是一个简单的仿射转换。也就是说,您可能只需要稍微旋转和平移对象;如果A的坐标系比B的“密度”大,则可能还需要将其稍微增大/缩小。但就是这样,不需要奇怪的“扭曲”来补偿扫描A和B之间发生的“移动”,因为它们同时发生

  • 表示三维空间中“大小和方向”的三维向量可以使用3x3变换矩阵T变换为另一个三维向量。例如,如果将变换应用于向量(使用矩阵乘法),则得到的向量u为。换句话说,“新”x坐标以变换矩阵指定的方式依赖于旧的x、y和z坐标,对于新的y和z坐标也是如此

  • 如果同时对三个向量应用3x3变换T,将得到三个变换后的向量。e、 g.对于
    v=[v1,v2,v3]
    其中
    v1=[1;2;3],v2=[2;3;4],v3=[3;4;5]
    ,则
    T*v
    将 给出一个3x3矩阵u,其中每列对应一个 x,y,z坐标的变换向量

  • 现在,考虑变换矩阵T是未知的,我们想发现它。假设我们有一个已知的点,我们知道在转换后它变成了一个已知的点。我们有:

    以第一排为例;即使你知道p和p',你也不能从一个点上确定a,b和c。你有三个未知数,只有一个等式。因此,要求解a、b和c,至少需要一个由三个方程组成的系统。这同样适用于其他两行。因此,要找到变换矩阵T,需要三个已知点(变换前后)

  • 在matlab中,您可以通过键入
    T=u/v
    来求解这样一个方程组,其中
    T*v=u
    。对于3x3变换矩阵T,u和v需要包含至少3个向量,但它们可以包含更多向量(即方程组过度表示)。从数值角度看,传入的向量越多,变换矩阵越精确。但理论上你只需要三个

  • 如果您的转换还涉及翻译元素,那么您需要执行您发布的图像中描述的技巧。即,将三维向量[x,y,z]表示为齐次坐标向量[x,y,z,1]。这使您能够在变换矩阵中添加第四列,这将导致每个点的“平移”,即在新的x、y和z系数中添加一个额外的值,该值与输入向量无关。因为平移系数也是未知的,所以现在有12个而不是9个未知,因此需要4个点来求解这个系统。i、 e

总结如下:


要将图像A变换为与B占用相同的空间,请将A的坐标解释为与B位于相同的坐标系中,在这两个坐标系中找到四个等效的地标,并通过使用
/
右矩阵除法运算符求解此方程组,获得如上所述的适当变换矩阵。然后,您可以使用找到的转换矩阵T,将
A
中的所有坐标(表示为齐次坐标)转换为新坐标。

如果它们不共享相同的参考框架,则必须使用任一基准点注册两个数据集