Transformix是和Elastix配套使用的一个工具,它能将两个图像配准后的形变场应用到另外单独的一个图像上,使其能够获得相同的变换。
下面分别介绍用Elastix在命令窗口调用以及SimpleElastix调用的方法。
一、基于命令行调用Transformix
Transformix是Elastix一起配套的,安装完Elastix后就能够在命令窗口调用Transformix
调用的代码:
elastix -f exampleinput/CBCT.nii.gz -m exampleinput/CT.nii.gz -out exampleoutput -p exampleinput/parameters_Rigid.txt
transformix -in label_CT.nii.gz -out outputDir -tp TransformParameters.0.txt
//其中label_CT.nii.gz是预配准的图像;
//outputDir 是保存路径
//TransformParameters.0.txt是CBCT和CT用刚性配准后得到的Transform参数文件
二、利用SimpleElastix调用Transformix
代码如下:
# 获得transform
elastixImageFilter = sitk.ElastixImageFilter()
elastixImageFilter.SetFixedImage(sitk.ReadImage(r'.../CBCT_path'))
elastixImageFilter.SetMovingImage(sitk.ReadImage(r'.../CT_path'))
elastixImageFilter.SetParameterMap(sitk.ReadParameterFile(r'.../Parameters_Rigid.txt'))
elastixImageFilter.LogToConsoleOn()
elastixImageFilter.Execute()
sitk.WriteImage(elastixImageFilter.GetResultImage(), r'.../outdir')
# Instantiate SimpleTransformix
transformixImageFilter = sitk.TransformixImageFilter()
# Read Input
transformixImageFilter.SetMovingImage(sitk.ReadImage(r'.../label_path'))
transformixImageFilter.SetTransformParameterMap(elastixImageFilter.GetTransformParameterMap())
# Perform warp
transformixImageFilter.LogToConsoleOn()
transformixImageFilter.Execute()
# Write result image
sitk.WriteImage(transformixImageFilter.GetResultImage(),r'.../outdir')