如何计算MPR的dicom切片之间的空间?

2024-01-10

由于显示MPR view基于 Dicom。我用一系列 dicom 文件制作了一个 3D 数组。我展示它来自Coronal and Sagittal sides.

My 3D array includes: 

 - z = count of dicoms
 - c = column value for every dicoms
 - r = Row value for every dicoms

但我有一个问题。当切片之间存在一些空间时,通过这种方式制作的图像不会显示正确的视图。因为我想不出他们之间的模拟距离!

我不知道如何计算切片之间的空间?我想在切片之间添加额外的空间。例如,如果切片之间的空间为 4。我必须添加 4 个 time z 内部切片。

我希望能达到我的平均水平。


图像位置(患者)和图像方向(患者)是两个only计算切片之间的距离时应该使用的属性。欲了解更多详情,请参阅here http://www.itk.org/pipermail/insight-users/2008-November/027903.html or here http://groups.google.com/group/comp.protocols.dicom/msg/5016d604cbc9e828。实际实现参见here http://gdcm.sourceforge.net/html/classgdcm_1_1IPPSorter.html,此实现还考虑了参考框架 UID 以及龙门架/探测器倾斜。

这个问题是在 comp.protocols.dicom 上提出的问题#1。

请参见ImageJ 错误 https://groups.google.com/group/comp.protocols.dicom/msg/eadf2bab086004d8


我相信@Matt 的答案是错误的,让我在这里澄清一些事情。

  • No: 'DICOM 确实not有一个名为“切片之间的间距”的属性。这是非常错误的(从技术上讲,它甚至没有任何意义)。

DICOM 定义了 IOD,它定义了 SOP 类实例中可用的所需属性集。让我们考虑两种非常常见的情况:CT 图像存储(传统)和 MR 图像存储(传统)。所以我们需要比较之间的属性集:

  1. CT 图像 IOD 模块 http://dicom.nema.org/medical/dicom/current/output/chtml/part03/sect_A.3.3.html
  2. MR 图像 IOD 模块 http://dicom.nema.org/medical/dicom/current/output/chtml/part03/sect_A.4.3.html

现在假设我们要检查 MR 图像存储支持Spacing Between Slices,很容易跳转到:

  • MR 图像模块属性 http://dicom.nema.org/medical/dicom/current/output/chtml/part03/sect_C.8.3.html#sect_C.8.3.1

然而,为 CT 图像存储找到此属性要困难得多:仅仅因为此属性不存在(根据标准)。因此,您唯一能找到此类属性的时间是在extendedSOP 类(某些供应商可能会认为切片之间的间距属性在其范围内有意义)extendedSOP 类实例)。

  • 在同一答案中混合切片之间的间距和切片厚度 (0018,0050) 对于新用户来说非常令人困惑。

我同意 CT 图像存储和 MR 图像存储的标准中完美定义了切片厚度,因为它们都包括图像平面模块属性 http://dicom.nema.org/medical/dicom/current/output/chtml/part03/sect_C.7.6.2.html#table_C.7-10,但是我们不要将其中一个交换为另一个。

我在这里找到了切片厚度与切片之间的间距的一个很好的总结(如果您滚动到该部分,您甚至可以播放小演示):

  • CT 物理:CT 重建和螺旋 CT http://xrayphysics.com/ctsim.html

在步进射击 CT 中,切片厚度和切片之间的间距是相同的,因此这里没有大问题。然而,对于螺旋 CT,这些值并不相同,并且可以在任何方向上变化(它们是独立的)。

[...]切片厚度由探测器宽度和节距决定, 而重建间隔(=切片之间的间距)可以选择 任意地。 […]

总之,要计算(安全!)切片之间的间距(= 重建间隔),使用图像方向(患者)和图像位置(患者)要安全得多,因为它们在 MR 图像存储或 CT 图像存储实例中可用。


以上所有内容都是在 CP-2061 之前编写的,CP-2061 将属性移至图像平面模块并使该属性现在可用于 CT:

  • https://dicom.nema.org/medical/dicom/Final/cp2061_ft_RefactorSpacingBetweenSlices.pdf https://dicom.nema.org/medical/dicom/Final/cp2061_ft_RefactorSpacingBetweenSlices.pdf
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何计算MPR的dicom切片之间的空间? 的相关文章

  • Go 中的旋转数组

    这是一个 LeetCode 问题 189 旋转数组 https leetcode com problems rotate array description 给定一个数组 将数组向右旋转 k 步 其中 k 是 非负数 示例1 输入 1 2
  • Javascript:根据属性值将对象数组拆分为具有动态名称的单独数组

    我有一个包含对象的数组 现在我想将数组切片为仅包含与特定属性值匹配的对象的新数组 理想情况下 新的数组名称应该动态创建 原始数组如下所示 specificSlotButtonArray slotStarttime 06 00 00 slot
  • 为什么切片[:-0]在Python中返回空列表

    今天在编写一些单元测试时偶然发现了一些有点令人困惑的事情 blah a b c blah 3 blah 2 a blah 1 a b blah 0 我一生都无法弄清楚为什么blah 0 应该是这样 该模式似乎绝对表明它应该是 a b c 任
  • 初始化空切片的正确方法

    要声明一个大小不固定的空切片 最好这样做 mySlice1 make int 0 or mySlice2 int 只是想知道哪一种是正确的方法 您给出的两个替代方案在语义上是相同的 但是使用make int 0 将导致内部调用运行时 mak
  • 使用切片功能限制结果自动完成jquery ui

    我需要限制此自动完成 jquery ui 脚本中的结果 最多 10 个 我知道我必须使用切片函数 但我无法将其正确放置在脚本中 在此先感谢您的帮助 document ready function var myArr ajax type GE
  • 如何使用 Javascript 截断/切片/修剪字符串中的最后一个字符?

    我有一根绳子 12345 00 我希望它返回12345 0 我看过trim 但看起来它只是修剪空白并且slice我不明白这是如何运作的 有什么建议么 您可以使用子串 https developer mozilla org en US doc
  • 将切片扩展到其容量的最简单方法是什么?

    我有一个程序 它使用缓冲池来减少代码中一些性能敏感部分的分配 像这样的事情 播放链接 https play golang org p c gsqBcbE some file or any data source var r io Reade
  • 对角块矩阵行之间的组合列表

    我有以下 R 矩阵 它是 2x3 和 3x3 子矩阵的组合 它可以是 2 个以上具有不同维度的子矩阵 例如 m1xp 和 m2xp 和 m3xp 其中 m1 m2 m3 A2 lt list rbind c 1 1 1 c 1 1 1 rb
  • 如何手动解码 JPEG 无损、非分层、一阶预测

    我正在尝试仅使用 JavaScript 和 HTML5 自己创建 DICOM 查看器 过去几天我一直在研究这个项目 现在我成功解析了我需要的所有文本信息 并且我还可以正确读取和显示未压缩的灰度和 RGB 图像 现在我正在尝试显示所谓的 JP
  • R 中按日期范围设置的 data.table 子集

    我在 data table 中有一个大型数据集 我想按日期范围对其进行子集化 我的数据集如下所示 testset lt data table date as Date c 2013 07 02 2013 08 03 2013 09 04 2
  • 包含第一个元素的反转数组切片[重复]

    这个问题在这里已经有答案了 假设我有 gt gt gt a 1 2 3 4 我想要一个反转的切片 假设我想要给出第 1 个和第 0 个元素start idx 1 and stop idx 0 2 1 使用切片符号 a x y z 我用什么值
  • Numpy 索引重新排序数组

    我刚刚偶然发现了一个我不太理解的 numpy 索引行为 看起来 numpy 正在根据索引模式改变我的轴的顺序 不幸的是 我在文档中找不到以下内容的解释 有人可以向我解释一下发生了什么事吗 This is expected dimension
  • Python 中通过切片列表赋值的紧凑方法

    我有以下清单 bar a b c x y z 我想要做的是分配第一个 第四个和第五个值bar into v1 v2 v3 有没有比这更紧凑的方法 v1 v2 v3 bar 0 bar 3 bar 4 因为在 Perl 中你可以这样做 my
  • 如何使用php将数组分成两个相等的部分

    如何在 PHP 中使用 array slice 将数组分成两个相等的部分 这是我的要求 第一个数组包含 0 1200 第二个数组包含 1200 end From array slice 的文档 https www php net array
  • 关于堆栈分配,Go 中什么被视为“小”对象?

    代码 func MaxSmallSize a make int64 8191 b make int64 8192 a b 然后运行go build gcflags m 2 gt 1检查内存分配详细信息 结果 mem go 10 can in
  • 将 GDCM 图像转换为 Java BufferedImage

    我正在使用 GDCM 读取 DICOM 图像 有没有一种简单的方法可以使用 GDCM 读取 dicom 文件 然后将其转换为 Java BufferedImage 到目前为止我有以下内容 String filename C test dcm
  • 如何查找 DICOM 研究中的图像数量?

    是否可以通过读取该研究中文件的 DICOM 标头来查找 DICOM 研究中的图像数量 我正在开发一个 Java 应用程序 该应用程序接收来自不同来源的 DICOM 研究 我只是想检查是否已完全收到研究 不幸的是 我不能依赖阅读 DICOMD
  • 为什么奇数的切片容量与偶数的切片行为不同

    我注意到 当容量为奇数时 切片的容量会以不同的方式表现 更具体地说 当向切片添加元素时 切片的容量为doubled当原始容量为偶数时 但当原容量为奇数时 容量为增加一 然后加倍 例子 s make int 28 28 s append s
  • numpy:高效执行数组的复杂重塑

    我正在将供应商提供的大型二进制数组读入 2D numpy 数组 tempfid M N load data data numpy fromfile file dirname fid dtype numpy dtype i4 convert
  • 如何使用 pyDicom 替换同一 DICOM 文件中的像素数据,以便使用任何 DICOM 查看器再次读取它?

    我想读取一些 DICOM 文件 所以我正在测试pydicom对于我的工作来说 我认为这非常有用 现在我想加载现有的 DICOM 文件 用另一个像素数组替换像素数据数组 例如预处理或实际上另一个 DICOM 像素数组 最重要的是 我想使用任何

随机推荐

  • 使用mapstruct中的构建器(使用不可变注释处理器)将对象映射到不可变对象

    我们正在使用不可变框架 http immutables github io 生成所有 DTO 现在我们想将这些对象映射到另一个映射结构 http mapstruct org 但生成的 DTO 是不可变的 没有 setter 和构造函数 这与
  • GCC 4.8.1 无法识别的命令行选项“-std=c++11”

    在网上看了很多文献 看来最近的GCC版本肯定支持 std c 11命令行选项 但由于一些疯狂的原因 即使使用 GCC 4 8 1 我也会得到 无法识别的命令行选项 这没有任何意义 C newmingw mingw32 bin gt g v
  • 如何使用 C# 在 firebird 中执行事务(或多个 sql 查询)

    我尝试了多种方法 包括SO 以下 MYSQL 代码在 Firebird 中不起作用 CREATE TABLE publications INT NOT NULL AUTO INCREMENT PRIMARY KEY id filename
  • powershell删除特定注册表项

    我是 PowerShell 新手 我正在尝试从运行注册表项中删除特定值 我正在使用remove item命令 但是 我没有看到用于指定单个值的开关 我不想删除整个键 只想删除一个值 作为参考 我正在尝试执行的批处理等效项 reg delet
  • 可插入注释处理器 API 可以检索源代码注释吗?

    我正在使用 Java6 的可插入注释处理 api 自动创建一些部署 XML 文件 这些 XML 文件的一部分包含对象的描述 描述始终与与类本身关联的 Javadoc 内容相同 我可以强制注释成为 Block 注释的字段 但这会重复信息 在注
  • 如何在基于时间的模拟游戏中防止基于时间的作弊?

    在iPhone游戏 Tiny Tower 中 我猜测它使用了某种基于上次玩游戏和当前时间之间花费的时间的模拟 因为你可以将当前时间向前设置 你将从假中受益经过的时间跨度 有没有一种算法可以用来防止这种事情发生 或者至少让普通用户很难实现 编
  • 如何在 Scala 中使用命名参数创建自定义函数类型?

    假设我想创建一个名为 ImportFunc 的自定义函数类型 它接受一个名为 fileImportID 的 Int 和一个名为 filename 的字符串 我可以使用类型别名很容易地做到这一点 如下所示 type ImportFunc In
  • 错误“元素不能包含空格。内容模型为空。”是什么意思?意思是?

    我正在为一个简单的 xml 组合一个 xml 模式 请参阅下面的 xml 和模式 但我不断收到有关节节点的以下错误 元素不能包含空格 内容模型为空 浏览网络我找不到任何简洁的解释来解释它的含义 所以我可以修复它 有人可以帮忙吗 编辑 感谢大
  • np.where(条件为 None) 不等于 np.where(条件 == None)

    我对 np where 函数感到困扰 在我的示例中为第 7 行 背景 我正在编写 连四子 游戏 这insert chip 方法访问变量self board这是我个人数据类型的 8x8 np 数组Chip 如果没有chip在一个条目中self
  • Angular 2 HTTP GET 返回 URL null

    我正在尝试使用 Angular 2 和 Typescript 发出一个简单的 HTTP GET 请求 我收到 404 错误 网址为空 下面显示的是我的组件文件以及我收到的错误 import Component OnInit from ang
  • 如何访问成员变量sqlite回调

    我需要从 sqlite 回调函数访问类中的变量 它不能是静态的 因为我需要从其他函数访问这个变量 这是我当前的代码 class fromdb private string paramdb char errmsg string param s
  • Chrome 正在由自动化测试软件控制

    我正在 Chrome 中使用 Serenity BDD Selenium 运行自动化测试 我必须下载新的 ChromeDriver 因为我的测试无法运行 gt 测试将打开 ChromeDriver 但无法 以用户身份浏览 当我用谷歌搜索这个
  • 为什么声明转换不会减少 cookie 大小?

    我正在使用 Azure AD net core 2 1 并已注册我的应用程序并将其配置为返回 AD 组作为声明 我还使用声明转换来删除除我的应用程序使用的三个组之外的所有组声明 这成功地消除了 100 多个组 我这样做是希望能够减少后续请求
  • SQL Server 2008 - 连接字符串

    我需要获取每个行项目的查询结果 并构建一个以分号分隔的组成该项目的材料列表 架构构成 表格 LineItems 唯一项目列表 LineItems Materials 多对多 材料 独特材料清单 行项目 ID 行项目 1 1A 1 LineI
  • 覆盖 ComboBox 中的默认 TextBlock 样式

    我在 App xaml 中定义了默认的 TextBlock 样式 它似乎也会影响 ComboBox 项目的文本颜色 现在 如何显式设置主窗口中定义的 ComboBox 的文本颜色 我想保留默认样式 但将组合框文本颜色设置为蓝色而不是红色 A
  • Unity3d android 2d 精灵放置

    Please take a look at this picture It s a final look of the game exported from photoshop I marked the ui sprites with re
  • 将鼠标悬停在 jtable 单元格上时显示图像

    我有一个使用 DefaultTableModel 创建的 JTable 我想在鼠标悬停在该 JTable 的特定单元格上时显示图像 并且我需要每个单元格的图像都不同 提前致谢 您可以覆盖prepareRenderer of the JTab
  • iOS - 运行 Swift 单元测试时找不到“MyProject-Swift.h”文件

    我正在尝试为我的项目设置单元测试 它是一个现有的 Objective C 应用程序 我最近向其中添加了一个 Swift 类 我已经设置了 MyProject Swift h 和 Swift 桥接文件 MyProject 和 MyProjec
  • Wordpress 和 Nginx 与 Docker:未加载静态文件

    我正在使用 Docker 来为我的简单 WordPress 网站提供服务 一个 nginx 容器和一个 wordpress 容器 简单设置 upstream wordpress english server wordpress en 80
  • 如何计算MPR的dicom切片之间的空间?

    由于显示MPR view基于 Dicom 我用一系列 dicom 文件制作了一个 3D 数组 我展示它来自Coronal and Sagittal sides My 3D array includes z count of dicoms c