问题标签 [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.

0 投票
2 回答
852 浏览

image-processing - 带有 CT 和 MR 标签的 DICOM 文件

已从 CT 和 MR 图像生成 DICOM 文件(人工轴向切片)。聚合文件是否可以同时包含 CT 和 MR DICOM 标签?例如Echo Time (0x18, 0x81)KVP (0x18,0x60)

我找不到任何信息是否一个图像模态模块与另一个模态模块互斥,并且想知道这样的人造图像是否会与其他供应商的软件发生故障。任何帮助将不胜感激。

0 投票
1 回答
481 浏览

matlab - 为什么iradon返回负像素值?

我使用 LabVIEW 软件以 1.8 度的步距角进行了 200 个投影。图像大小为 2748 x 2748 像素,uint16。然后使用 Matlab,我加载投影图像,进行平场校正,将图像大小调整 1/3 并将图像保存为 .mat 文件。然后我为过滤后的反投影运行下面的代码。

如果我在这段代码中使用过滤器,我会得到负像素值。

但是,如果我在没有过滤器的情况下运行代码,我会得到正像素值。

知道为什么 iradon 在过滤后的反投影中返回负像素值吗?

谢谢你。

努鲁尔

0 投票
1 回答
126 浏览

javascript - 氡反投影的一般公式是什么?

尝试在 javascript/HTML5 画布中实现计算机断层扫描反投影的模拟。试图找出正确的方法来消除反向预测,我一直在研究这个演示文稿

在上述演示文稿的第 9-13 页上,显示了反投影的逐步示例。此示例涉及一个 2x2 矩阵(具有 4 个投影和总共 10 个线积分)并计算每个投影的线积分,其中每个相应线积分的值分别添加到每个矩阵单元。

随后从每个矩阵单元的值中减去线积分的总数。最后,每个矩阵单元中的结果值除以投影数减一。

这种方法是否通常适用于更大的矩阵,比如具有更大单元格值的 100x100 矩阵,比如大约 100?

0 投票
2 回答
438 浏览

javascript - 递归算法未能在分配的时间内完成测试

我正在做一个需要二进制断层扫描算法的测试。提供了一组 38 个测试值来测试正确性,但完成所有测试也有 1 个 CPU 秒的时间限制。问题如下:

如果存在 m×n 矩阵 A,则输出“Yes”,每个元素为 0 或 1,使得

∑j=1nAi,j=ri∀i∈{1,2,…,m} 且 ∑i=1mAi,j=cj∀j∈{1,2,…,n}。

否则输出“否”。

对于每个测试,提供 2 个数组:

  1. r(矩阵中每一行的总和)
  2. c(矩阵中每一列的总和)

在等式中:

  • mr数组的长度,其中1 <= m
  • nc数组的长度,其中n <= 1000
  • rir的一个元素,其中0 <= ri <= n
  • cjc的一个元素,其中0 <= cj <= m

一个“是”的例子

米 = 3; n = 4; r = [2, 3, 2]; c = [1, 1, 3, 2];

在此处输入图像描述

一个“不”的例子

米 = 3; n = 3; r = [0, 0, 3]; c = [0, 0, 3];

我有一个似乎可以给出正确答案的解决方案,但是在超过 1 秒的 CPU 时间之前它只管理 12 / 38 次测试。

我最初在 ES5 中编写代码,然后返回并转换为 ES3 以尝试从中获得更多性能。(最初作为 ES5 管理 9 个测试)。我可以对当前算法做很多事情来提高性能(除非我弄错了)。这使我相信我的算法有问题,并且必须有更快的算法来执行此操作。我读了很多书试图找到一个,结果头疼:)

所以我转向社区,看看是否有人可以提出比我目前使用的更快的算法。

值得注意的是,测试是在 SpiderMonkey 版本 JavaScript-C24.2.0 上运行的

参考:

https://en.wikipedia.org/wiki/Discrete_tomography

https://open.kattis.com/problems/tomography

0 投票
1 回答
200 浏览

matlab - Matlab - 将切片组合成 3-D 体积

我正在测量 3 颗牙齿的微晶发散度。每颗牙齿在物理上被分成 4 个切片,我使用 Matlab 为每个切片创建了一个网格。我表示的数据如图所示:

切片

对于每颗牙齿,我想使用 matlab 将这 4 个切片堆叠成一个 3-D 模型。我希望能够从所有 3D 方向查看模型。您能否让我知道我的想法是否可行并引导我朝着正确的方向前进。

0 投票
0 回答
338 浏览

matlab - 在MATLAB中实现动态Radon变换的Landweber迭代

我正在研究动态逆问题和氡变换。术语“动态”是指对象(最终我将通过测量来重建其图像)随着时间的推移而变形。你可以想象人体内的心脏或肺。因此,需要修改通常的图像重建工具(如过滤后的反投影)来处理变形。就我而言,变形由 中的平滑函数给出R^2

φ^t(x,y)=(φ(t,x),φ(t,y))=(x*(1+c*x), y*(1+d*y))

其中它表示哪个粒子在(x,y)时间 instance的位置t。这里的系数cd由下式给出

现在考虑以下动态逆算子(广义 Radon 变换):

\iint_{R^2}是双重积分R^2\delta是通常的delta函数。使用变量的变化,上面的运算符可以写成

其中反函数φ^{-1}由下式给出

φ^{-1}(t,x) = (\sqrt{1+4c*x}-1)/(2c), φ^{-1}(t,y)= (\sqrt{1+4d*y}-1)/(2d)

和雅可比

J(t,x,y)=1/(\sqrt{(1+4c*x)(1+4d*y)).

t是一个决定时间和光线方向(角度)的参数。现在该函数f(φ^t (x,y))显示时间实例的真实对象(我们称之为 Shepp-Logan SL 的原始图像)的状态t。例如当t=0,那么函数φ^t就是恒等式,所以我们得到f(x,y)哪个是原始图像 SL。

我想用 Landweber 迭代进行图像重建,因为与其他方法相比,运行它似乎并不昂贵。Landweber 迭代采用以下形式

哪里\gamma是步长参数让我们说10^{-3}。在这里A^T,我的意思是算子的伴随,A称为反投影。因此对于一个函数hA^Th将采用以下形式

因此,如果我们在上面的伴随方程中替换hg-Af^k并代入 Landweber 迭代,我们得到

这是我的目标。假设我们将原始对象 SL 从 变形t=0t=5。然后我们取变形 SL 的氡气,在 处t=5给出测量值t=5。我和我的朋友编写了一个 MATLAB 代码,我们可以在其中成功地对原始对象 SL 进行变形,然后进行 Radon 变换(正向问题)。t=0现在我的目标是通过执行 Landweber 迭代公式(如上所示)从变形 SL 处的测量中重建原始对象 SL处t=5。我们也为这部分编写了代码,但我们无法重建原始 SL。以下是代码:

最初的 Object Shepp Logan SL

前向变形:

逆变形:

跑:

我想知道这里是否有人熟悉这个主题并且可以提供任何帮助。

如果不清楚,请发表评论,我将回答您的问题。先感谢您。

0 投票
0 回答
952 浏览

matlab - 滤波反投影 Matlab

我已经实现了 BackProjection 的代码并且它可以工作。现在我必须使用第一个 ramlak 过滤器和汉明窗口来实现过滤版本的代码。我的正弦图尺寸为 144x180。我的想法是

为了有这样的过滤器在此处输入图像描述

然后对于每个投影 s

然后执行反投影算法

你能告诉我它是否正确吗?

谢谢

0 投票
1 回答
209 浏览

mesh - 如何在 Avizo 中细化某些特定表面?

我正在使用 Avizo 生成从 CT 扫描获得的微观结构网格,以便在 Abaqus 中启动计算。我可以生成有趣的表面网格,但是外部网格太细了(你可以看到这个问题的图)。我正在尝试创建一个表面路径以在外部网格中有一个较粗的网格,但它不起作用。当我重新网格化我的模型时,所有模型都被修改了......我如何生成子表面以指定特殊的网格条件?谢谢你的帮助

在此处输入图像描述

0 投票
1 回答
233 浏览

matlab - 使用氡气和氡气时,莫尔条纹出现在重建图像中

我使用这个脚本来重建 Shepp-Logan 幻象的图像。

基本上,它只是简单地用于radon获取sinogram并用于iradon将其转换回来。

但是,我发现在调整对比度时可以看到非常明显的莫尔条纹。如果我使用我的 CT 图像数据集,这一点会更加明显。

谁能帮我理解这一点?谢谢!

调整对比度后的全图:

调整对比度后的全图

具有明显云纹图案的区域:

具有明显云纹图案的区域

0 投票
1 回答
122 浏览

matlab - 光束偏转技术的 FBP matlab 滤波器设计

我需要您的帮助来回答有关 iradon 过滤器设计的问题。实际上,在视线投影(光束偏转)中,与吸收等其他技术相反,ram lak 滤波器被另一种离散响应为:

离散响应

在频域中它表示为:

频域

受到iradon的启发,我实现了我的过滤器,如下所示:

你能看一下吗?我的实现准确吗?特别是我对原始 iradon 函数中的这一行有疑问:

为什么要乘以2?在我的情况下我应该怎么做?

提前谢谢了

此致