问题标签 [medical-imaging]

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 投票
1 回答
530 浏览

python - 使用 SimpleElastix 手动注册

我正在使用 SimpleElastix ( https://simpleelastix.github.io/ ) 进行两个 2D 图像的注册 (仿射) (见附件) 在此处输入图像描述。为此,我正在使用此代码:

后者执行后,我获得以下包含变换矩阵的 TransformParameters0.txt :

我的目标是使用这种矩阵变换来注册浮动图像并获得与 SimpleElastix 获得的类似的注册图像。为此,我正在使用这个小脚本:

我获得了这个注册图像,我将它与 SimpleElastix 的结果进行了比较(见附图)在此处输入图像描述。我们可以观察到缩放没有操作,平移有问题。我想知道我是否遗漏了转换矩阵中的某些内容,因为 SimpleElastix 提供了良好的配准结果。

有任何想法吗 ?

谢谢

0 投票
1 回答
547 浏览

python - 如何在 python 上显示所有 8 位图像

首先,对不起我的英语不好,我会说西班牙语,所以我会尽力解释我的问题。

我有一个标准化 ([0-255]) dicom 图像,我想显示 8 个图像,但改变位深度,我的意思是:1 位图像、2 位图像、3 位图像等。我的代码只是打开和标准化图像,因为我不知道应该怎么做才能得到我想要的东西,也许将所有像素值转换为二进制,但我真的不太了解,我开始学习数字图像处理。这是我的代码

更新:

我终于得到了我想要的东西,所以我会把我的代码放在这里以防有人想改进它,因为我知道它可能没有那么优化,但我是一个初学者,所以这就是我所做的,如果有人愿意的话优化它,随意做。另外,也许有了这个结果,我的问题现在更清楚了,它适用于所有 8 位,只需修改第二个“for”上的 int 函数。这些是我得到标准化的图像1 位图像6 位图像

0 投票
0 回答
1164 浏览

python-3.x - 类型错误:forward() 缺少 1 个必需的位置参数:在实施 Grad CAM 时为“x”

我制作了以灰度图像作为输入并返回单个值作为输出的模型。这个模型的主干基本上是 resnet18,但是因为它需要不同的输入/输出,所以我对其进行了修改。

该模型在测试数据集上运行良好,因此我决定使用 Grad CAM 制作激活热图。

然后,在我尝试使用下面的代码启动它之后,我总是面对 TypeError

类型错误:forward() 缺少 1 个必需的位置参数:'x'

任何人都可以提供任何建议来解决这个问题吗?

ps Dataloader(grad_loader) 在我训练模型时工作正常,所以我认为 dataloader 可能不是问题

0 投票
1 回答
190 浏览

python - vtkplotter - 如何设置颜色图

我正在使用带标签的 DICOM,并且正在使用 vtkplotter 来可视化 3D 模型。每个体素都有一个标签,用于标识已识别的骨骼部分,范围从 -1024 到根据 DICOM 扫描而变化的值。如何为每个标量值分配特定颜色?我尝试使用 color(),但据我了解,我只能以有序的方式插入与从最小值开始的值相对应的颜色。我必须为某个标量值 x 指定颜色 y。

我用来显示 3D 模型的代码片段:

编辑

我是这样解决的:

如果您有更好或更有效的解决方案,请告诉我。

0 投票
0 回答
47 浏览

machine-learning - 训练用于脑分割的 Unet 网络

我有两个问题:

Q1:我想知道向 untet 网络提供训练数据的最佳方式是什么:

  1. 一次发送一名患者,其中每个体积为 160x3x192x192
  2. 从 k 个患者中发送随机切片

Q2:目前我做了第一个选项,但没有收到任何好的结果。我得到一个振荡的骰子分数。例如,骰子损失从 0.99 开始下降到 0.8,峰值下降到 8,并且模式重复。有没有人回答为什么会发生这种情况?

代码:

请注意,我还没有完全实现验证部分,我只是想先看看网络是如何学习的。谢谢!

0 投票
2 回答
1487 浏览

dicom - 如何计算体素大小?

提供了来自 DICOM 标头的以下信息,我如何计算体素大小的第三个值?我假设前两个值是 0.515625 和 0.515625。

注意:我收到的是 JPEG 图像堆栈,而不是 DICOM,它带有一个文件,其中包含我在上面发布的值。如果需要,我可以返回并要求提供文件中的其他信息。

0 投票
3 回答
724 浏览

python - SimpleITK - 冠状/矢状视图大小问题

我正在尝试使用 SimpleItk 库从 DICOM 格式的 CTA 中提取所有三个视图(轴向、矢状和冠状)。

我可以从给定目录中正确读取该系列:

然后,使用此问题中所述的 numpy 数组,我可以提取并保存 3 个视图。

另外 2 个是通过保存image_array[:, i, :]image_array[:, :, i],whileconvert_img(..)是一个只转换数据类型的函数,所以它不会改变任何形状。

然而,冠状和矢状视图被拉伸、旋转并带有宽黑色带(在某些切片中它们非常宽)。

这是 Slicer3d 的屏幕截图:

Sclicer3D 截图

虽然这是我的代码的输出:

轴向

轴向

矢状面

矢状面

冠

图像形状为 512x512x1723,这导致轴向 png 为 512x512 像素,冠状和矢状为 512x1723,因此这似乎是正确的。

我应该尝试使用PermuteAxes过滤器吗?问题是我无法找到任何关于它在 python 中使用的文档(由于文档页面中的 404 而不是其他语言)

还有办法提高对比度吗?我使用了 simpleitk 的 AdaptiveHistogramEqualization 过滤器,但它比 Slicer3D 可视化差得多,除了速度很慢。

任何帮助表示赞赏,谢谢!

0 投票
1 回答
137 浏览

c# - 如何使用 C# 中的行进立方体算法从 CT 切片(.raw)生成 3D 网格?

我正在尝试使用行进立方体算法从 CT 切片(.raw 文件)生成 3D 网格(等值面提取)。RAW 数据为 8 位 512x512 像素和 207 个切片。所以输入是 CT 原始数据,输出是 CT 对象的 3D 网格你能帮帮我吗?因为我被困在这里超过 1 周你能不能给我编程工作流程来实现这一点?

接下来是我从http://paulbourke.net/geometry/polygonise/转换而来的 C# 类

}

}

现在的问题是,如何处理输入的 CT 数据(.raw 文件)?我不知道如何准备数据,我可以将行进立方体算法应用于它。这是我第一次使用这种数据类型。我真的很感谢你的帮助!

0 投票
1 回答
400 浏览

deep-learning - 没有掩码的 U-Net 分割

我是深度学习和语义分割的新手。

我有一个 Dicom 格式的医学图像 (CT) 数据集,我需要在其中分割图像中涉及的肿瘤和器官。我已经标记了我们的医生绘制的器官轮廓,我们称之为 RT 结构,也以 Dicom 格式存储。

据我所知,人们通常使用“面具”。这是否意味着我需要将 rt 结构中的所有轮廓结构转换为掩码?或者我可以直接使用来自 RT 结构 (.dcm) 的信息作为我的输入?

谢谢你的帮助。

0 投票
1 回答
81 浏览

python - 对于大小为 795 的轴 0,索引 795 超出范围

我正在尝试解决上面提到的错误,但我做不到。我正在尝试运行以下 python 函数:

def plot_test_samples():

请任何人知道我如何解决这个问题让我知道,提前谢谢