问题标签 [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.
python - 使用 SimpleElastix 手动注册
我正在使用 SimpleElastix ( https://simpleelastix.github.io/ ) 进行两个 2D 图像的注册 (仿射) (见附件) 。为此,我正在使用此代码:
后者执行后,我获得以下包含变换矩阵的 TransformParameters0.txt :
我的目标是使用这种矩阵变换来注册浮动图像并获得与 SimpleElastix 获得的类似的注册图像。为此,我正在使用这个小脚本:
我获得了这个注册图像,我将它与 SimpleElastix 的结果进行了比较(见附图)。我们可以观察到缩放没有操作,平移有问题。我想知道我是否遗漏了转换矩阵中的某些内容,因为 SimpleElastix 提供了良好的配准结果。
有任何想法吗 ?
谢谢
python - 如何在 python 上显示所有 8 位图像
首先,对不起我的英语不好,我会说西班牙语,所以我会尽力解释我的问题。
我有一个标准化 ([0-255]) dicom 图像,我想显示 8 个图像,但改变位深度,我的意思是:1 位图像、2 位图像、3 位图像等。我的代码只是打开和标准化图像,因为我不知道应该怎么做才能得到我想要的东西,也许将所有像素值转换为二进制,但我真的不太了解,我开始学习数字图像处理。这是我的代码
更新:
我终于得到了我想要的东西,所以我会把我的代码放在这里以防有人想改进它,因为我知道它可能没有那么优化,但我是一个初学者,所以这就是我所做的,如果有人愿意的话优化它,随意做。另外,也许有了这个结果,我的问题现在更清楚了,它适用于所有 8 位,只需修改第二个“for”上的 int 函数。这些是我得到标准化的图像,1 位图像,6 位图像
python-3.x - 类型错误:forward() 缺少 1 个必需的位置参数:在实施 Grad CAM 时为“x”
我制作了以灰度图像作为输入并返回单个值作为输出的模型。这个模型的主干基本上是 resnet18,但是因为它需要不同的输入/输出,所以我对其进行了修改。
该模型在测试数据集上运行良好,因此我决定使用 Grad CAM 制作激活热图。
然后,在我尝试使用下面的代码启动它之后,我总是面对 TypeError
类型错误:forward() 缺少 1 个必需的位置参数:'x'
任何人都可以提供任何建议来解决这个问题吗?
ps Dataloader(grad_loader) 在我训练模型时工作正常,所以我认为 dataloader 可能不是问题
python - vtkplotter - 如何设置颜色图
我正在使用带标签的 DICOM,并且正在使用 vtkplotter 来可视化 3D 模型。每个体素都有一个标签,用于标识已识别的骨骼部分,范围从 -1024 到根据 DICOM 扫描而变化的值。如何为每个标量值分配特定颜色?我尝试使用 color(),但据我了解,我只能以有序的方式插入与从最小值开始的值相对应的颜色。我必须为某个标量值 x 指定颜色 y。
我用来显示 3D 模型的代码片段:
编辑:
我是这样解决的:
如果您有更好或更有效的解决方案,请告诉我。
machine-learning - 训练用于脑分割的 Unet 网络
我有两个问题:
Q1:我想知道向 untet 网络提供训练数据的最佳方式是什么:
- 一次发送一名患者,其中每个体积为 160x3x192x192
- 从 k 个患者中发送随机切片
Q2:目前我做了第一个选项,但没有收到任何好的结果。我得到一个振荡的骰子分数。例如,骰子损失从 0.99 开始下降到 0.8,峰值下降到 8,并且模式重复。有没有人回答为什么会发生这种情况?
代码:
请注意,我还没有完全实现验证部分,我只是想先看看网络是如何学习的。谢谢!
dicom - 如何计算体素大小?
提供了来自 DICOM 标头的以下信息,我如何计算体素大小的第三个值?我假设前两个值是 0.515625 和 0.515625。
注意:我收到的是 JPEG 图像堆栈,而不是 DICOM,它带有一个文件,其中包含我在上面发布的值。如果需要,我可以返回并要求提供文件中的其他信息。
python - SimpleITK - 冠状/矢状视图大小问题
我正在尝试使用 SimpleItk 库从 DICOM 格式的 CTA 中提取所有三个视图(轴向、矢状和冠状)。
我可以从给定目录中正确读取该系列:
然后,使用此问题中所述的 numpy 数组,我可以提取并保存 3 个视图。
另外 2 个是通过保存image_array[:, i, :]
和image_array[:, :, i]
,whileconvert_img(..)
是一个只转换数据类型的函数,所以它不会改变任何形状。
然而,冠状和矢状视图被拉伸、旋转并带有宽黑色带(在某些切片中它们非常宽)。
这是 Slicer3d 的屏幕截图:
虽然这是我的代码的输出:
轴向
矢状面
冠
图像形状为 512x512x1723,这导致轴向 png 为 512x512 像素,冠状和矢状为 512x1723,因此这似乎是正确的。
我应该尝试使用PermuteAxes过滤器吗?问题是我无法找到任何关于它在 python 中使用的文档(由于文档页面中的 404 而不是其他语言)
还有办法提高对比度吗?我使用了 simpleitk 的 AdaptiveHistogramEqualization 过滤器,但它比 Slicer3D 可视化差得多,除了速度很慢。
任何帮助表示赞赏,谢谢!
c# - 如何使用 C# 中的行进立方体算法从 CT 切片(.raw)生成 3D 网格?
我正在尝试使用行进立方体算法从 CT 切片(.raw 文件)生成 3D 网格(等值面提取)。RAW 数据为 8 位 512x512 像素和 207 个切片。所以输入是 CT 原始数据,输出是 CT 对象的 3D 网格你能帮帮我吗?因为我被困在这里超过 1 周你能不能给我编程工作流程来实现这一点?
接下来是我从http://paulbourke.net/geometry/polygonise/转换而来的 C# 类
}
}
现在的问题是,如何处理输入的 CT 数据(.raw 文件)?我不知道如何准备数据,我可以将行进立方体算法应用于它。这是我第一次使用这种数据类型。我真的很感谢你的帮助!
deep-learning - 没有掩码的 U-Net 分割
我是深度学习和语义分割的新手。
我有一个 Dicom 格式的医学图像 (CT) 数据集,我需要在其中分割图像中涉及的肿瘤和器官。我已经标记了我们的医生绘制的器官轮廓,我们称之为 RT 结构,也以 Dicom 格式存储。
据我所知,人们通常使用“面具”。这是否意味着我需要将 rt 结构中的所有轮廓结构转换为掩码?或者我可以直接使用来自 RT 结构 (.dcm) 的信息作为我的输入?
谢谢你的帮助。
python - 对于大小为 795 的轴 0,索引 795 超出范围
我正在尝试解决上面提到的错误,但我做不到。我正在尝试运行以下 python 函数:
def plot_test_samples():
请任何人知道我如何解决这个问题让我知道,提前谢谢