Python | PyElastix 非刚性配准

文摘   科学   2024-08-21 21:41   上海  

科 / 研 / 图 / 像 / 处 / 理



Elastix 是一个用于图像刚性和非刚性配准的工具箱,由一系列常用于解决(医学)图像配准问题的算法组成。官网:https://elastix.dev/



elastix支持C++、Python、Java、R、Ruby、C#和Lua等语言。通常安装elastix,需要较为复杂的编译过程。


PyElastix把elastix封装成Python模块,使得调用elastix更加容易:

https://github.com/almarklein/pyelastix


这篇文章会介绍怎样安装 PyElastix,并利用 elastix 对 MRI 图像进行非刚性配准。









一、安装pyelastix


1、安装pyelastix包

首先你需要在电脑上安装Anaconda,生成一个新的环境,方便不同Python包的版本管理:

conda create --name pyelastix


激活该环境:

conda activate pyelastix

安装pyelastix包:

pip install pyelastix


如果pip出错,用conda进行安装:

conda install pyelastix -c conda-forge


安装一些需要用到的包:

pip install scikit-imagepip install scipypip install ipykernelpython -m ipykernel install --user --name=pyelastix


2、安装elastix


在 GitHub 上下载 elastix 压缩包:https://github.com/SuperElastix/elastix/releases/tag/5.1.0


或公众号后台回复“elastix”获取安装包。



将 elastix 压缩包解压成文件夹:


打开Windows的系统,打开高级系统设置:

点击环境变量:



在系统变量那里,点击新建,把 elastix 文件夹加入到系统路径:



完成这两个步骤,即完成了 PyElastix 的安装。









二、实例代码


from skimage import ioimport pyelastix
#load reference and "moved" imageref = io.imread('T1_brain.tif')mov = io.imread('T2_brain.tif')
ref = ref.astype('float32')mov = mov.astype('float32')
# Get params and change a few valuesparams = pyelastix.get_default_params()params.MaximumNumberOfIterations = 200params.FinalGridSpacingInVoxels = 20
# Apply the registration (mov and ref can be 2D or 3D)mov_deformed, field = pyelastix.register(mov, ref, params)
io.imsave('mov_deformed.tif',mov_deformed)


这里提供了一个对T1,T2图像进行3D配准的例子。原始输入:


利用 elastix 进行 3D 非线性配准后,输出:


关键代码分析:


ref = ref.astype('float32')mov = mov.astype('float32')

读入图像后,需要把图像转成float,elastix才能输出正确的结果。


params.MaximumNumberOfIterations = 200params.FinalGridSpacingInVoxels = 20

MaximumNumberOfIterations,即迭代次数。


FinalGridSpacingInVoxels,设置越小,配准越细节,也更容易出现过拟合。


可以针对自己的图像,调整这两个参数,根据配准结果和速度选择自己的参数。












创作不易,点个关注再走吧
如果有任何问题,欢迎在文章下方留言
 

作者 | Treasure琛
排版 | 小乐喵喵   

往期回顾

◆ ImageJ | 荧光共标细胞计数

◆ ImageJ | 图像标注

◆ ImageJ | 图像去卷积

◆ ImageJ | 自动图片拼接

◆ ImageJ | 3D可视化及测量

◆ ImageJ | 图像自动配准

◆ ImageJ | 重新认识你的图像

◆ ImageJ | 荧光比率图




科研图像处理
科研图像处理一站式解决方案,原知乎《ImageJ实用教程》
 最新文章