医学开源配准软件Elastix手册(中文翻译)——第四章 transformix的使用

第四章 transformix

4.1 介绍

到目前为止,你至少能够通过调用Elastix运行一个配准程序了,把变换作为一种基础应用到图像配准中是很有用的。也许你想原始图像(一般很大)运用这种变换来获得结果。或者你需要把这种变换应用到标签图像或者配准图像中。为了这些目的,你可以使用transformix,它是和elastix一起发展的。

4.2 怎样调用transformix

像elastix一样,reansformix是一种命令行程序。你可以通过调用transformix--help获得最基本的帮助,它会给出一系列的强制的和可选择的选项

基本的命令是:

Transformix -in inputImage.ext -outoutputDirectory

-tpTransformParameters.txt

这个命令将会改变输入图像,同时产生一个日志文件transformix.log保存到输出目录中去。你想要应用的这种变形取决于变性参数文件,变性参数文件可能是先前运行的elastix产生的文件,也可以是你自己写入的。4.3节说明变形参数文件的结构和参数。

使用transformix除了可以使图像变形,你还可以用他来评估在某些点处的变形。者意味着输入点被指定在固定图像的区域内,因为变形方向是从固定图像到浮动图像,2.6节有介绍。如果你想要变形一系列的用户指定点,合适的命令是:

transformix-def inputPoints.txt -out outputDirectory

-tpTransformParameters.txt

这会产生一个文件outputpoints.txt,它包含输入点X和变形点Tμ(x)(作为固定图像的体素和物理坐标),位移向量Tμ(x) − x 屋里坐标轴上),如果-ininputImage.ext也指定了,那么变形的输出点就是输入图像的指标。文件inputPoints.txt有如下的结构:

<index,point>

<numberof points>

point1x point1 y [point1 z]

point2x point2 y [point2 z]. . .

第一行说明给定的点可以是固定图像的指标也可以是物理坐标系中的点。

第二行存储了将要指定的点的个数,接着给出点的值。

transformix输入点除了可以是一般的txt格式还支持vtk文件:

transformix-def inputPoints.vtk -out outputDirectory -tp TransformParameters.txt

输出文件的格式保存为outputpoints.vtk,目前,vtk文件任然有一点限制,仅支持带有三角形网络的ASCII文件,输出文件中丢失很多变化点数据。

如果你想知道固定图像中所有像素点的变化,可以使用-def命令:

transformix-def all -out outputDirectory -tp TransformParameters.txt

变形场被储存在向量图像deformationField.m一个体素包含位移向量Tμ(x),x-物理坐标轴。向量的元素存储为float型。

除了计算变形场,transmix还可以计算变形的空间雅克比行列式。空间雅克比行列式在识别局部压缩或者膨胀是很有用的,例如在肺通气的研究中。雅克比行列式可以计算整幅图像,使用以下命令:

transformix-jac all -out outputDirectory -tp TransformParameters.txt

计算完整的雅克比空间矩阵还可以用如下命令:

transformix-jacmat all -out outputDirectory -tp TransformParameters.txt

每一个体素将用d×d的矩阵填充,d是图像的维数,来代替简单的标量值。

行命令-threads unsigned int可以定义transformix的最大线程。

4.3  变形参数文件

配准的结果是固定图像和浮动图像的变形Tμ。变形参数存储在TransformParameters.?.txt文件中。附录B中有一个刚性的2D变形的例子。文件包含所有对固定图像进行重采样到文件的指定区域。

变形参数文件可以由使用者手动编辑或者建立。多参数变形是通过利用InitialTransformParametersFileName tag.应用其他变性参数文件迭代完成的。最后的变形是将初始变换参数文件名设置为“NoInitialTransform”。

变形参数文件中最重要的一个参数是FinalBSplineInterpolationOrder.,通常将其设置为3,因为这样配准后的质量将是最好的,详见5.3.4。但是,如果你利用transmix来变形浮动图像的分割部分,你必须手动的将FinalBSplineInterpolationOrder设置为0。这回确保你的分割变换仍然是一个二进制标签图像。如果仍设为3,分割图像将会包括垃圾。这和“超越产权”的高阶b样条插值有关。

4.4 一些细节

4.4.1 运行时间

Transmix 的运行时间由一下部分组成

1.计算输入图像分解的b样条(如果你选择了FinalBSpline-Interpolator)

2. 计算每个像素的变形

3.为输入图像的每个像素插值

我们从来没有用测试来衡量每一步的计算复杂度,但我们认为步骤1是最不耗时的任务。这一步是可以通过最近邻或者线性插值来避免的。第二部取决于变形的选择,如刚性和仿射变换,大大快于非线性变换,如b样条变换。步骤3取决于特定的插补器。为了增加复杂性:最近的邻,线性,第一顺序b样条,第二顺序2 b样条等。

4.4.2 存储消耗

5.5.3将会详细介绍存储消耗,或者参见http://elastix.bigr.nl/wiki/index.php/Memory_consumption_transformix

你可能感兴趣的:(开源,中文手册,elastix,transmix,医学图像配准)