一.Elastix介绍
Elastix是一个基于ITK开发的处理医学图像配准问题的工具。Elastix提供了很方便的命令行使用方式以供使用者进行配准应用。
同时Elastix是开源的,并且采用模块式构成。可以根据源代码进行开发,或者添加新的模块。使用Elastix的源码需要遵循一些开源的规则,如果有使用需求,可以进行了解。
相关的使用文档:https://download.csdn.net/download/Joker00007/13757991
安装包及Github代码:https://download.csdn.net/download/Joker00007/14038149
二.Elastix的安装与运行
安装好安装包后,会有elastix.exe和transformix.exe
但是因为Elastix是基于命令行的工具,要实现配准需要用终端命令行运行。
同时若没有将Elastix的路径添加到系统环境,那每次使用的时候都要先在终端定位exe所在的路径下
将Elastix所在目录加入系统环境变量(在Path环境变量中加入Elastix所在路径)后便可在路径下运行Elastix,若运行elastix -h
成功就表示配置成功
三.Elastix批量运行
用Elastix实现配准的命令为
elastix -f exampleinput/fixed.mhd -m exampleinput/moving.mhd -out exampleoutput -p exampleinput/parameters_Rigid.txt -p exampleinput/parameters_BSpline.txt
第一行是生成了exampleoutput文件夹。第二行是调用了elastix进行配准。其中参数的意义分别是:
-f exampleinput/fixed.mhd //fixed image是exampleinput下的fixed.mhd
-m exampleinput/moving.mhd //moving image是exampleinput下的moving.mhd
-out exampleoutput //输出文件夹为exampleoutput
-p exampleinput/parameters_Rigid.txt //第一轮配准使用的参数存放在exampleinput下的parameters_Rigid.txt文件中
-p exampleinput/parameters_BSpline.txt //第二轮配准使用的参数存放在exampleinput下的parameters_BSpline.txt文件中
在此我们可以看到使用了两个参数文件:parameters_Rigid.txt和parameters_BSpline.txt。其中parameters_Rigid.txt是进行刚性配准的参数文件,parameters_BSpline.txt是使用B样条进行非刚性配准的参数文件。在使用elastix时,输入几个参数文件,就会进行几次配准。通常首先进行刚性配准,后再进行非刚性配准会得到较好的配准效果。
而当需要同时配准多个文件时,可以通过
或者用windows的批量命令行处理文件bat,在Github代码里的dox文件夹里有一个example.bat脚本和一个exampleinput目录。example.bat脚本是对Elastix程序进行调用的脚本,exampleinput目录下存放着需要输入的图像和对Elastix进行配置的参数文件。
双击运行example.bat,可以看到配准程序开始运行,运行成功后会生成exampleoutput文件夹,里边存放配准过程的日志信息,以及配准所得的形变参数等。其中result.0.mhd类的文件为对moving image配准所得的结果,中间的数字代表是使用第几个参数文件(也就是第几轮,刚性或者非刚性)配准所得的。
其中bat文件更改主要更改这两个地方,相当于把要在命令行执行的代码放到这里,更改好后保存,双击即可运行。
四.通过Python调用Elastix
若要通过python来调用Elastix,可以用一下两种方法:
方法一:安装pyelastix
pip install pyelastix
Github代码:pyelastix github
方法二:使用SimpleElastix
SimpleElastix是综合了SimpleITK库和Elastix,详细可见:https://blog.csdn.net/Joker00007/article/details/112402526
五.关于Elastix参数文件
parameters_Rigid.txt和parameters_BSpline.txt是elastix例子自带的参数文件,我们可以重写这些参数文件,还可以从官网查看后到Github上下载到别人使用过的参数文件。
同时配准后的输出结果也可以通过更改参数文件来实现:
如上图数据配准后的图像便是result.0.gipl,也可以根据需要更改成nii.hz;mhd等形式