Dicom中的Image Orientation/Position的理解和应用

DICOM空间定位三剑客:解码Image Position、Image Orientation与Patient Position的协作逻辑 本文深入解析DICOM影像处理中的三大核心标签——Image Position、Image Orientation与Patient Position的协作逻辑,揭示它们在医学影像空间定位中的关键作用。通过实际案例和代码示例,详细说明如何正确解析和应用这些标签,避免常见的三维重建错误,提升医疗AI模型的准确性。 阅读详情
AI摘要

本文详细解释了在DICOM标准中如何使用ImagePosition和ImageOrientation属性来确定图像在三维空间中的位置与方向。通过矩阵变换的方式,介绍了这些属性在虚拟现实(VR)及多平面重建(MPR)中的应用。

在DICOM中,是通过Image Position和Image Orientation来描述当前的图像和人体坐标系的相对位置的。

打开DCM文件时,会发现下边的两个tag

(0020,0032) DS ImagePosition(Patient) "-20.000000\-150.000000\150.000000 "

(0020,0037) DS ImageOrientation(Patient) "0.000000\1.000000\0.000000\0.000000\0.000000\-1.000000"

也就是这两个tag来描绘出当前图像的位姿情况,也就是用这两个量来进行定位线的计算,VR,MPR的空间计算。

要想理解这两个量,首先要搞明白在三维空间中的坐标变换,这个变换包括位置变换和姿态的变换,也就是运动学中常常称作的位姿变换。首先有原始坐标系o,

其中,O₁坐标系是绕z轴以O系统的基础上旋转了θ的一个角度,我们可以把这个矩阵记录为

,那么依次类推,通过一系列这样的变换,我们可以得到最终的变换矩阵为。

这里,我们把T记为

但是我们知道我们图像是一个2维的量,由于当前图像像素点的z方向坐标相对于当前图像的坐标系的值都为0,当前图像的坐标点可以用(x,y,0)的向量来表示,表示在齐次坐标方式就为(x,y,0,1)。那么,这时想要计算出图像上的某个点相对于原始坐标系的坐标,就直接和转换矩阵T相乘即可,记为

所以,Image Orientation的6个量就显而易见为

。Image Position中的三个量为

原始坐标系,规定人体的左边是X轴的方向,从面部指向背部的方向表示y轴的方向。Dicom中规定的坐标系是以人坐标系为绝对坐标系的。

下面给一个旋转坐标推导的实例,

1 VR应用中由A(从前胸方向)方位转换到H(从头方向)位置的转化

A 从前胸方向

H 从头的方向

2 旋转矩阵推导过程

2.0 Step0 原始坐标系展示

体数据位姿旋转矩阵

2.1 Step1 绕X轴旋转90度

体数据位姿旋转矩阵

2.2 step2 绕z轴旋转再旋转180度

体数据位姿旋转矩阵

最后得到旋转矩阵,

这个矩阵的含义是,Step2后的坐标系,相对于原始坐标系的旋转矩阵。在实际的项目中,可以直接用此矩阵来和体数据中的像素点的坐标进行相乘,就能得到体数据中像素的坐标点在原始坐标系中的坐标。

医学影像与坐标系转换 (以DICOM为例) 研究DICOM坐标系转换,查阅网上资料时,发现大多自用文章存在术语不统一,概念混淆的情况,这里进行简单的总结,如有错误望请指出。 阅读详情

相关推荐

别再搞混了!用Python+SimpleITK实战解析DICOM中的Image Position与Orientation

本文详细解析了DICOM文件中Image Position与Image Orientation标签的关键作用,通过Python和SimpleITK实战演示如何准确解析和应用这些标签。文章涵盖了DICOM坐标系基础、标签解析方法、坐标变换矩阵构建及实际应用案例,帮助医学影像处理工程师精准处理CT等医学影像数据。

weixin_27061475的博客 235

Dicom标签之(0020,0037) Image Orientation (Patient)

在CT中,(0020,0037) Image Orientation (Patient) 标准中的解释: The direction cosines of the first row and the first column with respect​ to the patient. 直译:图像行方向、列方向相对于病人的方向余弦。包含6个浮点数值 提到这个标签,就必须带上另一个标签 (0020,0032) Image Position (Patient) 标准中的解释: The x, y, and z

Kelvin_Yan的专栏 5391

从CT扫描到3D重建:DICOM中Image Position和Orientation字段的保姆级解读指南

本文深入解析DICOM标准中`Image Position`和`Image Orientation`字段在医学影像三维重建中的关键作用,提供从CT扫描到3D重建的完整工作流程。通过详细解读这两个字段的几何意义和临床应用,帮助医学影像专业人士确保重建模型的准确性,涵盖数据检查、空间配准、三维重建及常见问题排查等核心内容。

weixin_33272631的博客 275

Dicom Tag(决定CT成像的方向): Image Position,Image Orientation和Patient Position

在DICOM图像中,Image Position和Image Orientation是两个关键的标签,用于描述图像的位置和方向。它们都是DICOM标准的一部分,提供了有关图像在三维空间中位置和定向的信息。

weixin_42046845的博客 4730

CT影像三维重建第一步:手把手教你理解DICOM的Patient Position与图像方向

本文详细解析了DICOM中的Patient Position与Image Orientation参数在CT影像三维重建中的关键作用。通过LPS坐标系解释、核心标签分析及临床案例,帮助医学影像从业者准确理解图像方向参数,解决多序列配准中的常见问题,提升三维重建精度。

weixin_30856725的博客 428

从DICOM标签到三维重建:解码医学图像三大解剖平面的数字密码

本文深入解析医学图像处理中的三大解剖平面(矢状面、冠状面、横断面)及其在DICOM标签中的编码方式,揭示从二维切片到三维重建的空间配准技术。通过实战案例分享,提供医学图像处理中的常见问题解决方案,帮助开发者准确解码医学图像的空间密码,提升三维重建精度。

weixin_33739646的博客 388

【转】Dicom中的Image Orientation/Position的理解

转自:Dicom中的Image Orientation/Position的理解 - 知乎 在DICOM中,是通过Image Position和Image Orientation来描述当前的图像和人体坐标系的相对位置的。 打开DCM文件时,会发现下边的两个tag (0020,0032) DS ImagePosition(Patient) "-20.000000\-150.000000\150.000000 " (0020,0037) DS ImageOrientation(Patient) "0.00

sinolover的专栏 1267

别再搞混了!一文搞懂DICOM图像里的坐标系和患者体位(附Python代码验证)

本文深入解析DICOM图像中的坐标系和患者体位,通过Python代码实战帮助医学影像开发者掌握空间定位核心逻辑。从标签解析到三维重建,详细讲解Image Position、Image Orientation等关键字段的应用,并提供常见问题排查与验证技巧,助力开发者高效处理CT、MRI等医学影像数据。

weixin_30633405的博客 421

Dicom文件中部分重要标签理解

前三个数字表示图像第一行相对于患者的x、y、z轴的方向余弦值(行方向向量),后三个数字表示第一列相对于患者的x、y、z轴的方向余弦值(列方向向量)。序列实例ID,一个用于唯一标识一个影像序列的标签,确保在同一个检查中不同序列可以被区分开来,它是每个序列的全局唯一标识符。第一个像素点的x值为-203.968,y值为-200.000,z值为-244.062。图像中像素矩阵的第一个像素的位置,即图像左上角在患者坐标系中的x、y和z坐标。一个像素在行方向上的宽度为0.313,在列方向上的宽度为0.313。

bianguanyue的博客 1299

别再被DICOM体位搞晕了!手把手教你用Python pydicom解析Image Position和Orientation

本文详细介绍了如何使用Python pydicom库解析DICOM图像的空间坐标,包括Image Position和Orientation标签的提取与应用。通过实战代码演示,帮助开发者精准定位医学影像的三维坐标,适用于3D重建、多模态配准等场景,提升医学影像分析的准确性和效率。

weixin_42525637的博客 233

详解DICOM中Tag (0020,0037) Image Orientation (Patient) 的含义与作用

DICOM Tag (0020,0037) Image Orientation (Patient)定义了医学影像平面在患者三维坐标系中的方向,包含6个浮点数表示行方向和列方向的方向余弦。该Tag通过两个单位向量(行向量和列向量)描述影像平面取向,且两者必须正交。关键作用包括空间定位、多平面重建、图像配准和三维可视化等临床应用。文章详细解析了其几何意义,提供了标准断面示例(横断面、矢状面、冠状面)和验证方法,并给出Python代码示例说明如何解析和可视化方向向量。

编程技术探索者,分享C/C++、C#、Java、数据库等开发经验,聚焦实战技巧与AI兴趣,助力编程爱好者成长。 534

别再被DICOM体位搞晕了!手把手教你用Python解析Image Position和Orientation

本文详细解析了DICOM文件中`Image Position`和`Image Orientation`字段的空间几何意义,并通过Python代码实现从像素坐标到病人坐标的精准转换。文章涵盖了DICOM坐标系基础、关键字段解析、坐标转换公式、常见陷阱及高级应用如多平面重建,帮助开发者彻底掌握医疗影像处理中的空间计算难题。

weixin_30851867的博客 297

8. DICOM图像显示-DCMTK-图像显示和源码分析

  上篇文章讲了dcmtk的dcmimgle模块的DicomImage类的像素数据的多个处理过程,最终通过DicomImage类的getOutputData()获取P values值,即最终显示的灰度值。   DicomImage类封装了丰富了的图像处理方法,是dcmtk推荐使用的图像处理外部接口类。 获取灰度值   DicomImage提供了两个方法获取灰度值   bits是每个采样点的位数,灰度值是8bit   frame是要获取的帧数,多帧图像可以选择具体第几帧的图像灰度值,单帧图像只能使用默认值

tianma2012的博客 4231

别再搞混了!用Python+SimpleITK手把手教你解读DICOM中的Image Position和Orientation

本文详细解析了DICOM文件中`Image Position`和`Image Orientation`标签的核心作用,通过Python和SimpleITK实战演示了如何正确解读和转换这些标签,避免常见的坐标转换错误。文章还提供了验证计算正确性的技巧和性能优化建议,帮助开发者高效处理医学影像数据。

weixin_26985923的博客 150

powerdesigner导出sql将name放到comment注释上

【代码】powerdesigner导出sql将name放到comment注释上。

weixin_45947759的博客 1352

PyCharm 2023最新版安装配置全攻略(附永久激活教程)

本文详细介绍了PyCharm 2023最新版的安装配置全流程,包括版本选择、初始配置、插件生态、工程模板、调试优化及团队协作等关键步骤。特别针对专业版和社区版的功能差异进行对比,帮助开发者高效搭建Python开发环境,提升编码效率与团队协作能力。

p4q5r6s7t的博客 870
上一篇: Vue 中mothods、computed、watch的用法
下一篇: RIS和HIS的系统对接
恒哥的爸爸
博客等级 码龄21年 1056粉丝 70原创
评论 23
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值