问题标签 [tomography-reconstruction]
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 - 氡变换:优化源/探测器与旋转中心之间的距离
我的问题是,对于给定的图像和投影几何,我是否可以最佳地确定源与旋转中心之间的距离以及旋转中心与探测器阵列之间的距离。最优我的意思是测量向量的零条目的数量被最小化。
在下面的代码片段中,我使用了用于模拟 2D 断层扫描的 Astra 工具箱。
在我的示例中,如果我使用 arenp.linspace(0,np.pi,180)
的零条目的fp
数量1108
,如果我改用np.linspace(0,np.pi/180,180)
数字增加,5133
这使我相信值1500.0
和500.0
没有很好地选择。
python - 如何通过传统的计算机视觉方法对特定的头部 CT 区域进行分割和计算?
我正在为计算机视觉 (CV) 课程生成材料,我想通过传统的 CV 技术计算这个突出显示部分的面积:
因此,我应用 Canny 来检测边缘,并使用 Circle Hough 变换试图找到相应的区域。这些是我的结果:
我尝试使用分水岭,将标记作为我找到的圆圈的中心,但没有成功。有谁知道我该如何继续或有其他想法?
这是代码:
这是head_CT.tif图像。
谢谢你的帮助。
*此图像来自 Gonzalez & Woods,数字图像处理一书。
python - 是否有在 Pytorch 模型的输出上实现图像正则化损失的库?
我现在正在使用 UNet 进行一些稀疏 CT 去噪,其中输入是稀疏重建,输出(希望)去除了条纹伪影。我正在使用 MSELoss 或 SmoothL1Loss 参考全采样重建来计算网络的损失。
现在,除了常规损失(例如计算输出和标签之间差异的 l2 范数)之外,我想要计算的是基于实际输出的 l2 范数的额外损失,类似于中的 l2 正则化参数一种迭代重建技术,如正则化最小二乘问题
我必须自己编写它,还是 Pytorch 有一些功能来实现“一元”损失而不是“二元”损失操作?
(我不想要 weight_decay 解决方案,我对正则化网络中的权重不感兴趣。我对正则化网络的输出非常感兴趣)
3d - 如果我不知道投影的顺序,如何进行断层扫描重建
如果我有几个投影并且不知道与每个投影相关的角度。我如何重建图像(3D 体积)
itk - 如何对不同范围的医学图像进行插值
我想对 PET 和 CT 的数据进行插值,以便底层阵列具有相同的尺寸 - 在正常情况下它很简单,但我有 PET 和 CT 扫描范围不同的数据集 - 因此我需要先修剪更大的研究。
问题是,可能出现的是选择切片的子集会导致较大图像的小而可观察的部分从较小的图像中突出(因为体素的大小不同),如果我理解正确,它可能会破坏插值。
我想这是常见的问题,那么如何实现不仅体素尺寸不同而且范围也不同的插值?
如果图像范围不同,下面的代码无法正常工作
链接到提到的数据集
https://wiki.cancerimagingarchive.net/display/Public/Head-Neck-PET-CT
filter - 如何在 FBP Reconstruction 中正确执行 Ramp Filtering?重建得到 0.5 倍
首先,我为 Shepp-Logan 体模在 360 度角下生成正弦图。行方向为沿视图,列方向为沿探测器通道。
然后,我根据众所周知的形式生成 Ramp Kernel(Ram-Lak 滤波器):
带代码
此处,Ramp Kernel 的中心位于检测器的中心。(我不知道这是否正确,或者我应该设置center = 0
)。
之后,我对每个视图沿检测器执行 Ramp Kernel 过滤:
由于长度为 N 和 M 的两个信号有长度为 N+M-1 的卷积结果,这里我挑出中间的 400 个结果。(我也不知道这是否正确。)
最后,我使用iradon
没有内置过滤器来重构:
但是重建图像的值是 Shepp-Logan 幻象的真实值的一半,这意味着我应该将重建图像乘以 2 以获得正确的结果。
为什么?我在哪一步错了?
c++ - 过滤反投影:无法使用反投影算法重建图像
我正在学习 FBP,在过去的 1 个月里,我一直坚持使用反投影算法。到目前为止,我已经完成了以下步骤。
创建正弦图(Radon 变换)
创建过滤器(汉宁过滤器:我使用汉宁窗口函数来实现过滤器)我知道 Ram 过滤器效果最好,但我想研究不同的高通过滤器将如何工作。
快速傅里叶变换。(使用
dft
函数)应用过滤器
傅里叶逆变换(使用
dft
函数)将滤波后的正弦图通过反投影算法。我在这里分享两个功能:
传统的反投影算法(来自LOC:29)
- 在一本书第 72 页中找到的迭代方式
谁能告诉我如何实现反投影算法以及我的错误在哪里?
#PS - 这是我的第一个问题,如果我不遵守社区标准,我会尽快解决。谢谢你。
编辑 - 由于大多数观众不理解问题陈述,我正在上传这两个函数的结果。
应用backprojectionTraditional
功能
后 应用backprojectionIterative
功能后
应用反投影后,输出应与输入相同或接近。