python 网格形变_医学图像配准之形变场可视化(绘制形变场)

本文介绍了医学图像配准中形变场的三种可视化方法:1)使用ITK-Snap工具,适合三维形变场;2)毛毛大神的方法,基于matplotlib的contour函数;3)利用空间变换网络对规则网格进行变形。通过改变代码参数,可以调整形变场的显示密度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文讲述医学图像配准中形变场的可视化,包括一种直接通过工具查看的方法和两种手工绘制的方法。

首先来介绍一下形变场,一个大小为[W,H]的二维图像对应的形变场的大小是[W,H,2],其中第三个维度的大小为2,分别表示在x轴和y轴方向的位移。同理,一个大小为[D,W,H]的三维图像对应的形变场的大小是[D,W,H,3],其中第三个维度的大小为3,分别表示在x轴、y轴和z轴方向的位移。下图是一个二维脑部图像配准后得到的形变场。

如一开始所说,下面介绍3中方式来将形变场可视化。

1. 使用ITK-Snap可视化形变场

这种方式是最便捷也是我认为效果最好的,但是只适用于三维的形变场。首先将形变场保存为".nii"图像,用ITK-Snap工具打开,首先在下图红框的位置悬停一段时间,出现下图中的图标后点击,选择“Multi-Component Display”下面的“Grid”,就可以看到下图所示的效果。

2. 毛毛大神的方法

具体思路请看毛毛大神的文章plt.contour 绘制图像形变场(Deformation Field)。其实具体思路我没有完全看懂,大约是先产生一个规则的网格,然后加上形变场后展示出来。但是如果网格是[W,H]大小的,但是形变场是[W,H,2]大小的,所以只能选择一个维度相加,感觉有点奇怪。代码如下:

import matplotlib.pyplot as plt

import SimpleITK as sitk

import numpy as np

def grid2contour(grid, title):

'''

grid--image_grid used to show deform field

type: numpy ndarray, shape: (h, w, 2), value range:(-1, 1)

'''

assert grid.ndim == 3

x = np.arange(-1, 1, 2.0 / grid.shape[1])

y = np.arange(-1, 1, 2.0 / grid.shape[0])

X, Y = np.meshgrid(x, y)

Z1 = grid[:,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值