【SimpleITK】Resampling重采样

API :

  • sitk.Resample
  • sitk.Euler2DTransform (sitk.Euler3DTransform)

在这里插入图片描述
Resampling 顾名思义,对一幅图像进行重采样操作。而图像本身就是对原始连续信号的采样。
一搬来说使用 SimpleITK重采样包含以下四个部分:

  1. 我们需要重新采样的图像image,在坐标系 m m m。???why?
  2. 重采样网格(Resampling grid )—— 相应的坐标系 f f f下的网格点,将映射到坐标系 m m m下。 f f f —> m m m
  3. 变换 T f m T_f^{m} Tfm -> f f f坐标系下的点到 m m m的映射变换, m p = T f m ( f p ) ^mp = T_f^m(^fp) mp=Tfm(fp)
  4. 插值方法的选择

⚠️:第三点的变换?? T f m T_f^m Tfm??

SimpleITK提供了很多的插值方法,最常用的是两种:

  • sitkLinear
  • sitkNearestNeighbor

前者用于大多数插值任务,是精度和计算效率之间的折衷。
后一种方法是对mask进行插值,这是唯一一种不会在结果中引入新的label的插值方法。
我们在Resample图像的时,同时要Resample它们的mask,而mask是单一的值标志像素的类别,如果使用sitkLinear会引入新的值,此时必须使用sitkNearestNeighbor。

logo = sitk.ReadImage(fdata('SimpleITK.jpg'))
tx = 2
ty = -6.50 
theta = 0.31
euler2d = sitk.Euler2DTransform()
euler2d.SetTranslation((tx, ty))
euler2d.SetAngle(theta)
resampled_image = sitk.Resample(logo, euler2d)
plt.imshow(sitk.GetArrayFromImage(resampled_image))
plt.axis('off')    
plt.show()

在这里插入图片描述
sitk.Euler2DTransform:一个刚性的二维变换,以弧度围绕一个固定的中心旋转并平移。

问题: T f m T_f^m Tfm f f f m m m的变换,但是实际的情况确实对 m m m坐标系下的图像进行了变换?逆变换?

定义重新采样网格
在上面的例子中,我们任意使用原始图像网格作为重采样网格
??
图像是如何实现变换的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值