首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在SimpleITK中实现模型到图像的配准?

如何在SimpleITK中实现模型到图像的配准?
EN

Stack Overflow用户
提问于 2016-12-03 03:41:26
回答 2查看 421关注 0票数 1

我安装了用于医学图像配准的SimpleITK。它对于3D CT/CT和3D CT/MRI图像配准非常有效。现在我想实现模型/图像配准。该模型是一个球体。在ITK中有空间对象,如Box,Ellipse,可用于模型/图像配准。但我在SimpleITK中找不到这些对象。我是否应该从模型创建一个假图像,并使用图像/图像配准来模拟模型/图像配准?

谢谢,

刘大伟

EN

回答 2

Stack Overflow用户

发布于 2016-12-03 03:55:09

将空间对象转换为图像,然后使用图像到图像的配准肯定是一种解决方案。套准精度在一定程度上取决于用于转换SpatialObject->Image的图像网格的分辨率。与其他图像相同的像素间距是一个合理的选择。

票数 0
EN

Stack Overflow用户

发布于 2016-12-05 22:47:39

SimpleITK目前不支持空间对象或空间对象注册。上一次我做空间对象到图像的配准时,它相当慢,我最终将空间对象“渲染”到一个图像上,以执行图像到图像的配准。有几个C++ ITK示例(SpatialObjectToImage0-3.cxx)可以用来生成此图像。

或者,在SimpleITK中有PhysicalPointImageSource,它生成点的图像。然后使用重载运算符,球体或超椭圆的方程可用于生成所需隐式对象的近似值。Here是生成的Marschner Lobb函数的一个示例:

代码语言:javascript
复制
def marschner_lobb(size=40, alpha=0.25, f_M=6.0):
  img = sitk.PhysicalPointSource( sitk.sitkVectorFloat32, [size]*3, [-1]*3, [2.0/size]*3)
  imgx = sitk.VectorIndexSelectionCast(img, 0)
  imgy = sitk.VectorIndexSelectionCast(img, 1)
  imgz = sitk.VectorIndexSelectionCast(img, 2)
  del img
  r = sitk.Sqrt(imgx**2 + imgy**2)
  del imgx, imgy
  pr = sitk.Cos((2.0*math.pi*f_M)*sitk.Cos((math.pi/2.0)*r))
  return (1.0 - sitk.Sin((math.pi/2.0)*imgz) + alpha*(1.0+pr))/(2.0*(1.0+alpha))

可以对其他隐式函数执行类似的操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40939765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档