注册多通道三维医学图像
这个例子展示了如何自动对齐两个容积图像使用灰度登记。
注册问题,考虑一个图像的固定形象和其他图像的移动图像。登记的目的是使移动图像与固定形象。这个示例使用两种方法来自动对齐体积图片:
直接使用注册图像
imregister
。估计所需的几何变换移动图像映射到固定的形象,然后应用转换使用
imwarp
。
与其他技术,imregister
和imregtform
找不到功能或使用控制点。灰度登记通常适合于医疗和遥感图像。
加载图片
这个示例使用CT图像和T1加权图像收集先生从同一病人在不同的时间。提供的3 d CT和核磁共振数据集迈克尔·菲茨帕特里克博士作为的一部分回顾性图像配准评估(RIRE)数据集。
这个例子将MRI图像指定为固定的图像和CT图像的移动图像。数据存储在使用的文件格式回顾性图像配准评估(RIRE)项目。使用multibandread
包含图像数据的读取二进制文件。使用helperReadHeaderRIRE
函数来获取与图像相关联的元数据。
fixedHeader = helperReadHeaderRIRE (“rirePatient007MRT1.header”);movingHeader = helperReadHeaderRIRE (“rirePatient007CT.header”);fixedVolume = multibandread (“rirePatient007MRT1.bin”,…[fixedHeader.Rows, fixedHeader.Columns fixedHeader.Slices),…“int16 = >单”0,“bsq”,“ieee-be”);movingVolume = multibandread (“rirePatient007CT.bin”,…[movingHeader.Rows, movingHeader.Columns movingHeader.Slices),…“int16 = >单”0,“bsq”,“ieee-be”);
的helperVolumeRegistration
函数是一个helper函数提供帮助法官3 d登记结果的质量。你可以交互式地旋转视图和两轴保持同步。
图helperVolumeRegistration (fixedVolume movingVolume);
您还可以使用imshowpair
看个飞机从固定和移动卷卷的整体一致性。在重叠的图像imshowpair
灰色区域相对应,也有类似的强度,而红色和绿色区域显示一个图像比其它的地方。使用imshowpair
观察错误配准图像的卷沿着一个轴向片通过每个卷的中心。很明显,图像有不同的空间参考信息,如不同的世界限制和像素区段。
centerFixed =大小(fixedVolume, 3) / 2;centerMoving =大小(movingVolume, 3) / 2;图imshowpair (movingVolume (:,:, centerMoving) fixedVolume (:,:, centerFixed))标题(未注册的轴向片)
显示和登记结果通过合并可以提高的空间参考信息。这些数据,解决CT和MRI图像元数据中定义的数据集。使用这种元数据来创建imref3d
空间引用对象。
Rfixed = imref3d(大小(fixedVolume) fixedHeader.PixelSize (2),…fixedHeader.SliceThickness fixedHeader.PixelSize (1))
Rfixed = imref3d属性:XWorldLimits: [0.6250 - 320.6250] YWorldLimits: [0.6250 - 320.6250] ZWorldLimits:[106]图象尺寸:[256 256 26]PixelExtentInWorldX: 1.2500 PixelExtentInWorldY: 1.2500 PixelExtentInWorldZ: 4 ImageExtentInWorldX: 320 ImageExtentInWorldY: 320 ImageExtentInWorldZ: 104 XIntrinsicLimits: [0.5000 - 256.5000] YIntrinsicLimits: [0.5000 - 256.5000] ZIntrinsicLimits: [0.5000 - 26.5000]
Rmoving = imref3d(大小(movingVolume) movingHeader.PixelSize (2),…movingHeader.SliceThickness movingHeader.PixelSize (1))
Rmoving = imref3d属性:XWorldLimits: [0.3268 - 334.9674] YWorldLimits: [0.3268 - 334.9674] ZWorldLimits:[114]图象尺寸:[28 512 512]PixelExtentInWorldX: 0.6536 PixelExtentInWorldY: 0.6536 PixelExtentInWorldZ: 4 ImageExtentInWorldX: 334.6406 ImageExtentInWorldY: 334.6406 ImageExtentInWorldZ: 112 XIntrinsicLimits: [0.5000 - 512.5000] YIntrinsicLimits: [0.5000 - 512.5000] ZIntrinsicLimits: [0.5000 - 28.5000]
空间引用对象的属性定义相关的图像卷在世界坐标系统和每个维度的像素范围是什么。的XWorldLimits
的属性Rmoving
定义的位置移动的体积在X维度。的PixelExtentInWorld
属性定义了每个像素的大小在世界单位在X维度(列)。移动卷延伸从0.3269到334.97毫米X坐标系统和世界上每个像素都有一个0.6536毫米的程度。单位是毫米,因为头信息用于构造空间引用在毫米。的ImageExtentInWorldX
属性决定了全部世界移动图像体积的单位。
使用方法1:注册图像imregister
的imregister
功能使您能够获得一个注册输出图像体积,您可以查看并观察直接访问登记结果的质量。
选择正确的优化器和标准配置来使用imregister
通过使用imregconfig
函数。这两个图片是来自两个不同的方法,MRI和CT,所以“多通道”
选项是合适的。改变的价值InitialRadius
登记产权优化器来实现更好的收敛结果。
(优化器,度量)= imregconfig (“多通道”);优化器。InitialRadius = 0.004;
两卷之间的偏差包括平移和旋转,所以使用一个刚性变换注册图像。指定空间参考信息,所使用的算法imregister
将收敛更快更好的结果。
movingRegisteredVolume = imregister (movingVolume Rmoving、fixedVolume Rfixed,…“刚性”优化器,指标);
显示一个轴向片采取通过注册中心卷的成功注册。除了调整图片,注册过程调整的空间参考信息移动图像和固定的图像是一致的。现在的图片是相同的尺寸和成功对齐。
图imshowpair (movingRegisteredVolume (:,:, centerFixed) fixedVolume (:,:, centerFixed));标题(“注册体积轴向片”)
使用helperVolumeRegistration
再次查看注册体积继续判断的成功注册。
helperVolumeRegistration (fixedVolume movingRegisteredVolume);
方法2:估计,并应用三维几何变换
的imregister
函数注册图像但不返回的信息几何变换应用到移动图像。当你感兴趣的是估计几何变换,可以使用imregtform
函数得到一个几何变换对象存储的信息转换。imregtform
使用相同的算法imregister
和有相同的输入参数imregister
。
tform = imregtform (movingVolume Rmoving、fixedVolume Rfixed,…“刚性”、优化、指标)
tform = rigidtform3d属性:维数:3翻译:[-15.8648 -17.5692 29.1830]R: [3 x3双]:[4 x4的两倍)
房地产一个
定义了三维仿射变换矩阵用于对齐图像转移到固定的形象。
tform.A
ans =4×40.9704 0.0228 0.2404 -15.8648 -0.0143 0.9992 -0.0369 -17.5692 -0.2410 0.0324 0.9700 29.1830 1.0000 0 0 0
的transformPointsForward
函数可以用来确定一个点(u, v, w)的移动图像映射结果登记。因为空间引用输入被指定imregtform
、几何变换地图点在世界坐标系中从移动到固定的。的transformPointsForward
下面的函数,以确定的转换位置移动的图像的中心坐标系统。
centerXWorld =意味着(Rmoving.XWorldLimits);centerYWorld =意味着(Rmoving.YWorldLimits);centerZWorld =意味着(Rmoving.ZWorldLimits);[xWorld, yWorld zWorld] = transformPointsForward (tform,…centerXWorld、centerYWorld centerZWorld);
您可以使用worldToSubscript
函数来确定固定体积的元素相结合的中心移动的体积。
(r、c、p) = worldToSubscript (Rfixed、xWorld yWorld, zWorld)
r = 116
c = 132
p = 13
应用几何变换估计imregtform
使用的三维体积imwarp
函数。“OutputView”
名称参数用于定义一个空间引用参数,决定了世界范围和分辨率的输出图像重新取样。你可以产生相同的结果的imregister
通过使用空间引用对象相关的固定形象。这将创建一个输出音量的世界限制和决议的固定和移动图像是一样的。一旦世界限制和决议的数量是相同的,每个样本之间存在像素像素对应的移动和固定卷。
movingRegisteredVolume = imwarp (movingVolume Rmoving tform,…“双三次的”OutputView = Rfixed);
视图的中心轴切开注册所产生的体积imwarp
。
图imshowpair (movingRegisteredVolume (:,:, centerFixed),…fixedVolume (:,:, centerFixed));标题(“注册体积轴向片”)