问题标签 [simpleitk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
268 浏览

python - itk::NeighborhoodIterator python 包装

我正在使用 ITK python 包装器(ITK 不是 simpleITK)来原型 µCT 输出自动处理。我需要计算 3D 对象厚度图,但 ITK 中不存在此功能。管道很简单:

  • 二值化对象
  • 计算距离变换
  • 提取中轴作为距离图local-max

我的问题是它的itk::RegionalMaximaImageFilter行为不符合预期(不保留分支)。所以我想编写一个自定义函数来检查中心像素是否 >= 使用 3x3x3 滑动内核与其相邻。

我的想法是利用优化的itk::RegionalMaximaImageFilter迭代器(见这里)。但是,即使这与 C++ 完美配合,我也无法找到使用 Python 的解决方法(没有用 cython 包装 c 代码)。

0 投票
1 回答
481 浏览

python-3.x - 根据注册结果转换第三张图像

Execute注册方法返回注册(转换)版本的SimpleElastix运动图像,但不允许类似地转换另一张图像。我有两个 CT 图像并且想根据骨骼进行配准,因此我使用大约 600 到 1500 Hounsfield 单位之间的逻辑 sigmoid 对输入图像进行软阈值处理,以便对比度集中在骨骼上。为简单起见,您可以假设阈值将所有低于 600 的值设为 0,将所有值从 0 线性缩放到 1,并将高于 1500 的所有值设为 1。

注册,使用SimpleElastix

但是,我想在没有软阈值的情况下对原始图像进行操作。

有没有办法应用在原始图像上找到的配准转换?通过获取变换或通过提供未阈值的运动图像“乘客侧”,使其类似地变换但不用于优化成本函数。

0 投票
0 回答
409 浏览

python - SimpleITK,即使环境变量 si linke 也无法打开图像查看器

我想让 Slicer 成为 SimpleITK 的默认图像查看器。我的环境变量如下所示:

但我收到此错误消息:

文件“C:\Users\QP\AppData\Local\Programs\Python\Python36-32\lib\site-packages\SimpleITK\SimpleITK.py”,第 7745 行,在 Show return _SimpleITK.Show(*args, **kwargs ) RuntimeError:SimpleITK Show 中引发的异常:C:\d\VS14-Win32-pkg\SimpleITK\Code\IO\src\sitkShow.cxx:495: sitk::ERROR: 找不到合适的可执行文件。

我与其他多个查看器一起尝试过,但我无法让它工作

0 投票
0 回答
430 浏览

python - 在 Ubuntu for Python 上安装 SimpleElastix 的问题

我正在尝试在 Ubuntu 计算机上为 Python2 或 3 安装 SimpleElastix/SimpleITK,无论我们可以开始工作。使用 pip install 不起作用,因为那时不导入各种方法(例如,不存在“GetDefaultParameterMethod”)。我尝试按照他们网站上的说明进行操作(https://simpleelastix.readthedocs.io/GettingStarted.html#compiling-on-linux),但即使在整个过程中没有抛出任何错误,我仍然无法导入。对于 Python3,会弹出典型的“无模块”错误,但对于 Python2,我得到以下信息:

任何帮助将不胜感激 :)

0 投票
4 回答
2381 浏览

python - 使用 GDCMSeriesFileNames 或路径列表读取的 DICOM 图像

我正在使用 SimpleITK 分析动态 PET 数据。我有一个包含 148 * N 图像的文件夹(其中 N 是我的动态 PET 的帧数),我想分离每个帧的图像。首先,我为每一帧创建了一个带有相应图像的子文件夹。

我正在阅读我的图片如下:

创建所有这些子文件夹对用户不是很友好,所以我尝试将图像的所有路径存储在列表中:

并阅读这样的图像:

问题是,当我查看位于相同坐标 (x, y, z) 中的体素值时,这两种方法无法获得相同的值。似乎使用series_reader.GDCMSeriesFileNames()SimpleITK 检索有关 DICOM 图像的一些信息,例如 Origin。

SimpleITK 检索了哪些信息来创建他的图像series_reader.GDCMSeriesFileNames(),我需要拥有完全相同的图像?还是有另一种方法可以使用路径列表获得相同的图像?

PS:在这篇文章中,所有以“图像”命名的变量都是图像的路径,而不是 SimpleITK 图像对象。

编辑:就我而言,我所有的框架都有相同的序列号,所以我不能使用series_reader.GDCMSeriesFileNames(path_folder, series_ID)

0 投票
1 回答
166 浏览

itk - ANTS 工具中的 DenoiseImage,引发与 ITKv5 相关的错误

一旦我尝试DenoiseImageANTS 工具中运行,

我收到以下错误:

如果您知道任何解决方案,您能帮忙吗?

谢谢

0 投票
1 回答
349 浏览

python - 如何进行阈值处理?

当我应用阈值时,出现错误:

错误是:

我申请img = sitk.Image(img.GetSize(), sitk.sitkUInt8)了,但我得到了一个黑色的图像。

有没有类似Python 的选项double(img)im2bw会正常工作吗?print(img) 给出以下内容

VectorImage (0x2f57af0) RTTI 类型信息:itk::VectorImage 参考计数:1 修改时间:1289 调试:关闭对象名称:观察者:无源:(无)源输出名称:(无)发布数据:关闭数据发布:假全局发布数据:关闭 PipelineMTime:1278 UpdateMTime:1288 RealTimeStamp:0 秒 LargestPossibleRegion:维度:2 索引:[0, 0] 大小:[305, 305] BufferedRegion:维度:2 索引:[0, 0] 大小:[305, 305 ] RequestedRegion: 维度: 2 索引: [0, 0] 大小: [305, 305] 间距: [1, 1] 原点: [0, 0] 方向: 1 0 0 1

索引到点矩阵:1 0 0 1

点到索引矩阵:1 0 0 1

反向:1 0 0 1

VectorLength:4 PixelContainer:ImportImageContainer (0x24ba950) RTTI typeinfo:itk::ImportImageContainer 参考计数:1 修改时间:1285 调试:关闭对象名称:观察者:无指针:0x30bb390 容器管理内存:true 大小:372100 容量:372100

​</p>

0 投票
1 回答
529 浏览

python-3.x - 如何可视化标签图像

我想分割图像。我使用了简单的阈值方法。为此,我读取图像并将其转换为数组,然后转换 img

错误是:

0 投票
1 回答
1077 浏览

user-interface - 未找到 GUI 模块

我正在尝试运行以下代码:

当我在蜘蛛 3.2.6 中运行它时,我得到: ModuleNotFoundError: No module named 'gui'

任何帮助,将不胜感激。

代码来源:http: //insightsoftwareconsortium.github.io/SimpleITK-Notebooks/Python_html/30_Segmentation_Region_Growing.html

0 投票
1 回答
360 浏览

python - 配准具有不同视野的非各向同性 CT 扫描

我对医学图像配准非常陌生。

我正在尝试注册两个 CT 体积,第一个是轴向的,大小为 (384,384,31),间距为 (0.57,0.57,4.8),第二个是矢状扫描,大小为 (384,384,15),间距 (0.67) ,0.67,2.2),以便使用它们之间的重叠区域来创建超分辨率并获得各向同性扫描。

所以问题是体积有不同的方向以及不同的视野。即矢状扫描中的轴向切片仅包含轴向扫描中存在的一小部分,换句话说,我需要裁剪轴向扫描中的轴向切片以匹配矢状切片的FOV等以创建simpleitk 刚性配准算法的掩码。

我还认为我需要在某些时候重新采样两个卷的掩码。

我的问题是,如何创建掩码,我可以使用 nifti 文件中可用的任何元数据来执行此操作吗?我有方向、原点和索引点矩阵。

非常感谢。