在 SimpleITK 中对 3D 图像切片进行操作并创建新的 3D 图像

2023-12-02

我将 3D 图像从 NIfTI 文件读入 SimpleITK(使用 python),获取每个轴向切片,对其进行处理,然后将新的 2D 切片重新插入具有(希望)适当尺寸的 3D 体积中。例如,

output = sitk.Image(original.GetSize(), sitk.sitkFloat32)
output.CopyInformation(original)
for z in numpy.arange(original.GetDepth()):
    image = original[:,:,z]
    << Do Something in SimpleITK>>
    << Produce a new 2D image = newimage >>
    output[:,:,z] = newimage

最后一步是抛出错误

In [???]: (executing line ??? of "code.py")
Traceback (most recent call last):
  File "code.py", line ???, in <module>
    output[:,:,z] = newimage
  File "/Library/Python/2.7/site-packages/SimpleITK-0.8.1-py2.7-macosx-10.10-intel.egg/SimpleITK/SimpleITK.py", line 3894, in __setitem__
    raise IndexError("invalid index")
IndexError: invalid index

完成 for 循环中最后一步的正确语法(或命令集)是什么?


使用粘贴功能将切片图像粘贴到体积中。唯一的小技巧是粘贴函数假设两个图像都是 3d。因此,您需要将 2D 图像转换为 3D 图像(z 大小为 1)。您可以使用 JoinSeries 函数来完成此操作。

这是一个示例 python 脚本来展示它是如何工作的

#! /usr/bin/env python

import SimpleITK as sitk

# make a black volume
vol_img = sitk.Image(100,100,100,sitk.sitkUInt8)

# make a white slice
slice_img = sitk.Image(100,100,sitk.sitkUInt8)
slice_img = slice_img + 200

# convert the 2d slice into a 3d volume
slice_vol = sitk.JoinSeries(slice_img)

# z insertion location
z = 42

# paste the 3d white slice into the black volume
pasted_img = sitk.Paste(vol_img, slice_vol, slice_vol.GetSize(), destinationIndex=[0,0,z])

sitk.Show(pasted_img)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 SimpleITK 中对 3D 图像切片进行操作并创建新的 3D 图像 的相关文章

随机推荐

  • 使用 Selenium 测试 AngularJS

    我在 ASP MVC AngularJS 堆栈上有一个 SPA 应用程序 我想测试 UI 现在我正在尝试 Selenium 与 PhantomJS 和 WebKit 驱动程序 这是一个示例测试页面 具有单个元素的视图 清单项目 li 从服务
  • http 文件访问和 php 会话

    如果站点有 php 会话来强制对站点上以 php 实现的页面进行身份验证 授权 那么相同的逻辑如何强制访问某些文件 假设目录中的文件存储库 因此 var www html 通过身份验证受到保护 但是 此 PHP 身份验证逻辑不会禁止用户简单
  • 关闭调试打印

    有时我有很多打印分散在函数周围来打印调试输出 为了切换这个调试输出 我想出了这个 def f debug False print builtins print if debug else lambda p None 或者 如果我需要打印除调
  • 为什么自动装箱会使 Java 中的某些调用变得不明确?

    今天我注意到自动装箱有时会导致方法重载解析中的歧义 最简单的例子似乎是这样的 public class Test static void f Object a boolean b static void f Object a Object
  • 在视图控制器之间传递数据/对象/moc - 最佳实践

    我有一个我怀疑很常见的场景 我发现了各种想法来回答其他类似的问题 包括设置 IBOutlet 将 NSmanagementobjects 作为属性传递以及仅使用一个视图控制器但交换视图 但我不确定这将是为我的解决方案实施的最佳想法 我有一个
  • 有什么原因我不能只使用 git 来跟踪 svn checkout 的更改吗?

    我已经习惯在我的一些家庭项目和工作项目中使用 git 来跟踪我在自己的文件夹中所做的更改 我想用它来跟踪我在 svn checkout 中对一组文件所做的更改 我已经阅读过有关 git svn 的内容 它似乎超出了我目前想要 需要的范围 我
  • 根据与其他 2 列相关的条件创建一列

    我在 pandas DataFrame 中有两列 我们称之为 col1 和 col2 两者都包含 True False 值 我需要从这两列 col3 创建第三列 如果两列中的一列或另一列在该记录中具有 True 值 则该记录将具有 True
  • Z - R 中多边形(shapefile)的值

    我的目标是在 R 中创建 3D 可视化 我有柏林市区 Ortsteile 的 shapefile 并希望将值 居民 平方公里 突出显示为 z 值 我已将 shapefile 实现到 R 中 并为密度值 Einwohnerd 着色 如下所示
  • 将 pandas 数据框中的列向上移动一位?

    我有一个熊猫数据框 我想 落后 我的一篇专栏 这意味着 例如 将整个 gdp 列向上移动一位 然后删除剩余行底部的所有多余数据 以便所有列再次具有相等的长度 df y gdp cap 0 1 2 5 1 2 3 9 2 8 7 2 3 3
  • 仅在移动视图上隐藏 div 标签?

    我正在为网站创建流畅的布局 我试图隐藏 a 的内容 div 或整个 div 本身在移动视图中 但不在平板电脑和桌面视图中 这是我到目前为止所得到的 title message clear both float left margin 10p
  • 转换日期格式返回错误的日期 xcode [重复]

    这个问题在这里已经有答案了 我想转换日期23 May 2017 to 23 05 2017 我尝试使用以下代码但它返回25 12 2016 NSDateFormatter oldFormatter NSDateFormatter new o
  • Eclipse - 导入您自己的库

    好的 希望这既快速又简单 我有两个独立的java项目 Library 和 Project 并且 Project 中有一个类想要实现 Library 中找到的方法 我正在寻找某种在 项目 类顶部进行的 导入 调用 以使 库 中找到的方法可以在
  • 更改 TextBlock 的绑定文本内子字符串的颜色

    我正在将一些财产绑定到我的TextBlock
  • 无法加载文件或程序集“MySql.Data,版本=6.3.6.0”

    我完全不知所措 我遇到了超级奇怪的问题 我仍然不明白 我正在运行 Entity Framework 4 1 MySql 5 xx 我的 MySql Connector 是 v 6 4 4 一切正常本地精美 但是每当我上传到服务器时 我都会收
  • Android MultiChoiceModeListener 支持 2.3

    为了支持操作栏 我使用 Android 支持库包 V4 和 V7 我在我的应用程序中使用 MultiChoiceModeListener 我如何将 MultiChoiceModeListener 用于 2 3 设备 工作示例 V7 impo
  • SPOJ - 运行时错误 SIGSEGV

    以下是实施中缀到后缀转换 它在我的计算机上运行良好 但当我在 SPOJ 上提交时 它给了我运行时错误 SIGSEGV 我是竞争性编程的新手 我无法处理此类错误 include
  • 使用批处理脚本读取每 5 行

    我想制作一个批处理程序 它将显示文本文件的每 5 行 例如第 1 6 11 16 行 我尝试修改此处找到的 head bat 代码 用于从文本文件读取第一行的 Windows 批处理命令 我的代码如下 echo off setlocal e
  • 避免传递 null 作为视图根(需要解析膨胀布局的根元素上的布局参数)

    为 root studio 传递 null 会给我这个警告 避免传递 null 作为视图根 需要解析膨胀布局的根元素上的布局参数 它显示空值getGroupView 请帮忙 public class ExpandableListAdapte
  • PHP群发邮件

    我在一家小型营销公司工作 该公司要求我开发一个 PHP 应用程序 以便为他们的公司发送电子邮件 而不会被列入黑名单或电子邮件显示为垃圾邮件 我对 PHP OOP 有相当好的了解 但我不明白如何构建这个程序 他们每月需要发送大约 500 00
  • 在 SimpleITK 中对 3D 图像切片进行操作并创建新的 3D 图像

    我将 3D 图像从 NIfTI 文件读入 SimpleITK 使用 python 获取每个轴向切片 对其进行处理 然后将新的 2D 切片重新插入具有 希望 适当尺寸的 3D 体积中 例如 output sitk Image original