注册多模式三维医学图像

这个例子展示了如何使用imregisterimregtform.imwarp自动对齐两个容量数据集:同一患者在不同时间采集的CT图像和T1加权MR图像。与其他技术不同,imregisterimregtform.不要寻找功能或使用控制点。基于强度的注册通常非常适合于医学和遥感图像。

本例中使用的三维CT和MRI数据集由迈克尔·菲茨帕特里克博士作为的一部分回顾性图像配准评估(RIRE)数据集

步骤1:加载图片

本例使用了同一患者头部的两张3d图像。在配准问题中,我们将一幅图像视为固定图像,另一幅图像视为运动图像。配准的目的是使运动图像与固定图像对齐。在本例中,固定图像是T1加权MRI图像。我们要配准的运动图像是CT图像。数据以回顾性图像配准评估(RIRE)项目使用的文件格式存储。使用多寓言读取包含图像数据的二进制文件。使用HelperReadhadeRire.函数获取与每个图像关联的元数据。你可使用以下连结查阅更多有关RIRE档案格式的资料:RIRE数据格式

固定主人= HelperReadheaderre(“rirePatient007MRT1.header”);搬家人= HelperReadheaderre(“rirePatient007CT.header”);固定volume = multibardread('Rirepatient007mrt1.bin'...[fixedHeader。行,fixedHeader。列,fixedHeader。片),...“int16 = >单”0,'bsq'“ieee-be”);movingVolume = multibandread ('Rirepatient007ct.bin'...[motherheader.rows,motherheader.columns,motherheader.slices],...“int16 = >单”0,'bsq'“ieee-be”);

升降螺旋液功能是提供帮助的辅助功能,以帮助判断3-D注册结果的质量。您可以互动地旋转视图,两轴都将保持同步。

HelpervolumereGistration(超凡镜,浮雕);

你也可以用imshowpair.从固定的和移动卷看单个平面,以获得卷的总体对齐感。在重叠的图像中imshowpair.在美国,灰色区域对应的是具有相似强度的区域,而品红和绿色区域显示的是其中一个图像比另一个图像更亮的地方。使用imshowpair.沿着通过每个体积的中心沿着轴向切片观察图像体积的误解。

CenterFixed =尺寸(固定volume)/ 2;Centermoving =尺寸(移动volume)/ 2;图imshowpair(移动volume(:,:centermoving(3)),超凡镜(:,cententixed(3)));标题(“未登记的轴向片”

步骤2:设置初始注册

imregconfig功能使得易于选择正确的优化器和公制配置使用imregister.这两张图像来自两种不同的模式,MRI和CT,所以“多模式”选择是合适的。

(优化器,度量)= imregconfig ('多峰');

所使用的算法imregister当指定有关输入图像的分辨率和/或位置的空间引用信息时,将更快地收敛到更好的结果。在这种情况下,在图像元数据中定义了CT和MRI数据集的分辨率。使用此元数据构造imref3d.我们将作为注册输入参数传递的空间引用对象。

Rfixed = imref3d(大小(fixedVolume) fixedHeader.PixelSize (2), fixedHeader.PixelSize (1) fixedHeader.SliceThickness);Rmoving = imref3d(大小(movingVolume) movingHeader.PixelSize (2), movingHeader.PixelSize (1) movingHeader.SliceThickness);

空间引用对象的属性定义了相关图像体积在世界坐标系中的位置以及每个维度的像素范围。Rmoving的XWorldLimits属性定义了移动体在X维中的位置。PixelExtentInWorld属性定义了X维度(沿列)中每个像素的世界单位的大小。移动体积在世界X坐标系中从0.3269扩展到334.97,每个像素的范围为0.6536mm。单位以毫米为单位,因为用于构建空间引用的标题信息以毫米为单位。ImageExtentInWorldX属性以世界单位确定移动图像体积的全部范围。

rmoving.xworldlimits.
ans =.1×20.3268 - 334.9674
Rmoving。PixelExtentInWorldX
ans = 0.6536
rmoving.imageextentinworldx.
ans = 334.6406

两卷之间的错位包括翻译,缩放和旋转。使用相似性转换来注册图像。

首先使用imregister要获取注册的输出图像卷,可以直接查看和观察访问注册结果的质量。

为优化器的InitialRadius属性指定一个非默认设置,以实现更好的注册结果收敛。

优化器.Initialradius = 0.004;vishtregisteredvolume = imregister(移动volume,rmoving,mictionvolume,Rfixed,“刚性”,优化器,度量);

使用imshowpair.再次重复检查轴向切片的对齐过程,通过注册体的中心来了解注册的成功程度。

图imshowpair(voortregisteredvolume(::centurefixed(3)),固定volume(:,:cententixed(3)));标题(“注册卷的轴向切片”

从上面的轴向切片,看起来注册成功。使用升降螺旋液再次查看登记卷以继续判断注册的成功。

HelpervolumereGistration(MotiorVolume,vishregisteredvolume);

步骤3:得到三维几何变换,对齐移动与固定。

imregtform.函数可以用来当你对几何变换估计感兴趣的时候imregister形成注册输出图像。imregtform.使用相同的算法imregister并采用相同的输入参数imregister.由于目视检查所产生的体积imregister表示注册成功,可以拨打imregtform.使用相同的输入参数来获得与该配准结果相关联的几何变换。

geomtform = imregtform(movingVolume,Rmoving, fixedVolume,Rfixed,)“刚性”、优化、指标)
Geomtform =带有属性的Affine3D:维度:3 T:[4x4双]

IMREGTForm的结果是几何变换对象。该对象包括属性T,其定义了3-D仿射变换矩阵。

geomtform。T
ans =.4×4.0.9704 -0.0143-0.2410 0 0.0228 0.0228 0.0228 0.0324 0 0.2404 -0.0369 0.9700 0 -15.8648 -17.5692 29.1830 1.0000

几何变换的transformPointsForward方法可用于确定运动图像中的点[u,v,w]在配准后的映射位置。因为空间引用的输入被指定为imregtform,几何变换映射在世界坐标系中从移动到固定。下面使用transformPointsForward方法来确定运动图像的中心在世界坐标系中的变换位置。

CenterXworld =均值(Rmoving.xworldlimits);centeryworld =卑鄙(rmoving.yworldlimits);CenterZworld =卑鄙(Rmoving.zworldlimits);[xworld,yworld,zworld] = TransformpointSforward(Geomtform,CenterXworld,CenteryWorld,CenterzWorld);

可以使用Rfixed的worldToSubscript方法来确定固定体积的元素,该元素与移动体积的中心对齐。

(r、c、p) = worldToSubscript (Rfixed、xWorld yWorld, zWorld)
r = 116
C = 132.
p = 13

步骤4:将几何变换估计应用于运动图像卷。

imwarp功能可用于将几何变换估计从IMRegtform应用于3-D卷。“OutputView”名称/值用于定义空间引用参数,该参考参考参数确定输出重采样图像的世界限制和分辨率。您可以产生相同的结果imregister利用与固定图像相关联的空间参考对象。这创建了一个输出量,其中世界限制和分辨率的固定和移动图像是相同的。一旦两个体积的世界限制和分辨率相同,移动体积和固定体积的每个样本之间就有像素对像素的对应关系。

movingRegisteredVolume = imwarp (movingVolume Rmoving geomtform,'bicubic''OutputView',rfixed);

再次使用imshowpair来通过所生成的注册卷的中心查看轴向切片imwarp

图imshowpair(voortregisteredvolume(::centurefixed(3)),固定volume(:,:cententixed(3)));标题(“注册卷的轴向切片”

另请参阅

||||