问题标签 [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.
python - 图像配准/对齐和转换如何在像素级别上工作?
我知道图像配准/对齐的基本流程或过程,但是当 2 个图像被配准/对齐时,在像素级别会发生什么,即转换为固定图像的运动图像的相似像素保持不变,但像素会发生什么?不匹配,它们是平均值还是其他?
以及如何估计正确的转换技术,即我如何知道是否应用平移、缩放、旋转等以及应用多少(即旋转的度数值、平移值等)?
此外,在初始步骤中,如何识别和匹配相似的像素值?
输入图像是前列腺 MRI 扫描:
可以在右上角和左上角的输出图像中看到差异。但我无法解释控制台输出以及事情在内部的实际工作方式。
如果我对这件事有深入的解释,那将非常有帮助。谢谢你。
python - Python 在“sys.exit (1)”上引发异常“SystemExit: 1”
在 spyder anaconda 中。
我已经通过 anaconda Prompt 安装了软件包 simpleitk,system,os 。
在运行此代码时,它给我以下错误用法:E:/registration/simpleitk.py 发生异常,使用 %tb 查看完整的回溯。
系统退出:1
C:\Users\aBC\AppData\Local\Continuum\anaconda3\lib\site-packages\IPython\core\interactiveshell.py:3275:用户警告:要退出:使用“退出”、“退出”或 Ctrl-D。warn("要退出:使用 'exit'、'quit' 或 Ctrl-D。", stacklevel=1)
我怎样才能纠正这个错误?
python - SimpleITK:如何将掩码转换为默认原点、间距、方向
我正在做一个关于医学图像分割的项目,并且在对齐蒙版和病变时遇到了麻烦。我正在尝试使用该包根据其元数据SimpleITK
更正掩码 ( ) 文件。.nrrd
我假设所有图像都具有相同的元数据(间距、方向、原点),由代码中的默认常量指示。
附加的代码没有做我想要的——而不是少量移动掩码,它只是将掩码中的每个元素设置为零。有人知道我做错了什么吗?是ResampleImageFilter
我需要的转换吗?
我也可以使用其他库的解决方案。
vtk - 如何在 CSHARP 项目中将 Simpleitk 图像转换为 VTK?
我在我的程序中使用 Activiz(c# library of vtk) 和 SimpleITK,
我尝试用 SimpleITK 加载 dicom 系列,然后将图像传输到 Activiz,然后用 vtkVolumeRayCastMapper 创建一个卷
我可以得到一个卷,但似乎这个卷已经被扭曲、切割、变形了。
c# - DICOM 切片保存为 PNG 时损坏
我正在使用 SimpleITK 读取 DICOM,并将特定切片保存为 PNG 文件。我可以将一个新的 DICOM 文件写回磁盘,它看起来和预期的一样。但是每当我尝试以任何其他格式保存它时,它都会被严重损坏。我的意思是它看起来不像输入,它完全是乱码。
这是代码:
获取图像的缓冲区并使用它来创建 BitMap 会遇到同样的问题。读取 DICOM 系列(我的最终目标)而不是一个文件,并使用 3D 体积并以这种方式提取切片也有同样的问题。
我错过了什么?
编辑:虽然对比度关闭并且丢失了一些细节,但使用PixelIDValueEnum.sitkUInt16
大大提高了 的输出。ImageFileWriter
我仍然无法将缓冲区转换为位图并将其另存为 PNG,此代码仍会创建损坏的数据:
我尝试了每个PixelFormat.16bpp*
值都没有成功,一些数据肯定丢失了,因为 ImageFileWriter 的输出比我保存位图时大 50% 以上。
这是坏位图:
simpleitk - SimpleITK OrientedBoundingBoxVertices - 在什么坐标系中定义顶点?
使用 LabelShapeStatisticFilter,我可以正确地从原始图像中提取定向感兴趣区域。我想在原始图像上绘制那些定向边界框。
当我尝试查看 GetOrientedBoundingBoxVertices() 方法的输出时,我不清楚这些顶点是在什么坐标系中定义的。它们似乎不在原始图像坐标系中。
我相信我正在按照预期使用 LabelShapeStatisticFilter 类(见下文),遵循这个优秀的笔记本:http: //insightsoftwareconsortium.github.io/SimpleITK-Notebooks/Python_html/35_Segmentation_Shape_Analysis.html
我希望能够在原始图像上绘制这些边界框,但我不确定如何。
更新
也许这可以更好地说明我的意思。Resampled Oriented Bounding Box,按预期输出:
但是,使用 original_label_image.TransformPhysicalPointToContinousIndex() 后,原始图像空间中的定向边界框点出现错误(原始索引空间中的 shape_stats.OrientedBoundingBoxVertices()):
更新 2
使用 shape_stats.GetCentroid(),我可以正确获取每个标签质心的真实坐标并正确绘制它们:
看起来 shape_stats.GetOrientedBoundingBoxOrigin() 的输出似乎在真实世界坐标中。shape_stats.OrientedBoundingBoxVertices() 的一个元素对应于 shape_stats.GetOrientedBoundingBoxOrigin()。
c++ - 为什么我不能包含 SimpleITK.h 安装后不能包含在 C++ 中?
我已经安装了 SimpleITK 并ctest
成功测试。然后,我将库包含在.bashrc
as 中export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/softwares/vtk-itk/SimpleITK-build/lib
。安装,我跑make install
进去~/softwares/vtk-itk/SimpleITK-build/SimpleITK-build
,安装成功。但是,当我尝试包含#include <SimpleITK.h>
时,似乎确实知道安装路径。
我正在尝试在 Clion IDE 中编写我的代码,甚至它也没有在External Library
项目的根目录中显示 simpleITK 文件夹。
如何解决这个问题?
python - 除了 scipy.ndimage.zoom 之外,还有更快的方法来调整 3d 卷的大小/重新采样吗?
我知道有一个函数scipy.ndimage.zoom
可以调整\重新采样 3D 体积,但这是针对 numpy.array 的,而且速度非常慢。因此,我使用ResampleImageFilter
fromSimpleITK
代替。我认为基于 C++ simpleitk 的工作要快得多。
但是使用 simpleitk 重新采样存在一个小缺陷。ResampleImageFilter
适用于 SimpleITK.Image,但不适用于 numpy.array,因此进行进一步操作非常不方便。有没有其他方法可以重新采样 3D 体积?
编辑
为什么我有这个担忧是因为我想利用 SimpleITK 重采样的快速速度,同时我想保持我的代码干净。例如,我需要对一个体积做二进制阈值,然后重新采样整个事情。所以这是我的解决方案,
但实际上,使用 numpy 做二进制阈值的逻辑索引更简单,这将使我的代码更紧凑。
所以总而言之,我想充分利用 SimpleITK 重采样,但是 numpy 可以更好地完成一些操作,然后我的代码与 SimpleITK 和 numpy 有点交织在一起。我不认为这是一件好事。
python - 在 nifti 文件中保存具有复杂组件的矢量
我生成一个 4D 复杂的 numpy 数组,例如:
我想将 numpy 数组保存为 nifti 文件
我尝试使用 vtk 和 SimpleITK,但它们都不支持复数(只有实数向量)似乎只有 nibabel 支持复数向量,我设法保存文件,但我只能用 nibabel 加载它,当我尝试使用 ITK-SNAP 或 Slicer 加载它时,它不会打开。我知道 ITK-SNAP 可以打开 nifti 文件的复杂向量,因为我已经使用 matlab 将这些文件与另一个脚本一起保存
nibabel 保存尝试:
SimpleITK 保存尝试:
vtk 保存尝试:
尼巴贝尔输出:
nibabel 创建一个带有矢量的 nifti 文件,但使用其他程序(如 ITK-SNAP)它不会打开
ITK-SNAP 错误:
SimpleITK 错误:
vtk 输出:
vtk 创建了一个矢量 nifti 文件,但有 6 个组件而不是 3 个(也将虚部视为组件),我在 numpy_to_vtk 的文档中看到它不支持 coplex 数组,也许有人知道解决方法。