【转】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.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后的坐标系,相对于原始坐标系的旋转矩阵。在实际的项目中,可以直接用此矩阵来和体数据中的像素点的坐标进行相乘,就能得到体数据中像素的坐标点在原始坐标系中的坐标。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/435609.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

搭建TFS2008的过程及其注意事项

TFS服务端的安装 1、安装windows Server 2003 操作系统 2、打windows Server 2003 sp2 补丁 3、安装iis, 记得选上asp.net ,不能选extend homepage 4、访问 Microsoft 网站上的 Windows Update,并安装“高优先级更新程序”组中的所有项 5、装上ms sql2…

【转】矩阵变换坐标系 深入理解

转自:矩阵变换坐标系 深入理解 - 知乎 网址链接:从坐标系图中理解“空间变换” 小谈矩阵和坐标变换 矩阵坐标系变化理解 让我们从一个实际的例子入手:下图是一个用两维的笛卡尔坐标系表示的二维空间。 其中,黑色坐标系 x-y代表…

【转】坐标系变换矩阵推导

转自: 坐标系的变换矩阵推导 1.平移变换 假设存在点(x,y,z),将x移动a,y移动b,z移动c,到新的点(x′,y′,z′),则: 中间4x4的矩阵叫变换矩阵。可见,如果要平移坐标,要将坐…

Crystal Report 2008

郁闷的Crystal Report 2008,下午逛了一圈sap网站,Crystal给Sap收购后就没怎么上过他们的网站,像迷宫一下逛了半天才找到下载升级包的地址,备用,也许你看到的时候已经失效了 http://www.sdn.sap.com/irj/boc/crystalrep…

【转】图形流水线中坐标变换详解:模型矩阵、视角矩阵、投影矩阵

转自:图形流水线中坐标变换详解:模型矩阵、视角矩阵、投影矩阵_sherlockreal的博客-CSDN博客_视角矩阵 图形流水线中坐标变换详解:模型矩阵、视角矩阵、投影矩阵 图形流水线中坐标变换过程模型矩阵:模型局部坐标系和世界坐标系之…

set row count

SET ROWCOUNT 使 Microsoft® SQL Server 在返回指定的行数之后停止处理查询。 语法 SET ROWCOUNT { number | number_var } 参数 number | number_var 是在停止给定查询之前要处理的行数(整数)。 注…

【转】C#开发PACS医学影像处理系统(二):界面布局之菜单栏

转自:C#开发PACS医学影像处理系统(二):界面布局之菜单栏 - 乔克灬叔叔 - 博客园 在菜单栏布局上,为了使用自定义窗体样式和按钮,我们需要先将窗体设置为无边框,然后添加一个Grid作为菜单栏并置顶,Vertical…

WF4.0 基础篇 (二十九) WorkflowInspectionServices

本文例子下载: http://files.cnblogs.com/foundation/WorkflowInspectionServicesSample.rar WorkflowInspectionServices 类 WorkflowInspectionServices可以得到流程中的Activity, 由于WF4.0的ActivityTree相对复杂,并不是象WF3.X的结构那样清晰, 在WF4.0中Activi…

Linux 命令平时积累

我是Windows Live Writer 写博客,来记录我平时遇到的一些问题和解决的方法。 记得刚刚接触Linux的时候,自己真是一名不折不扣的菜鸟,通过一年的努力,自己可以单独操作Linux了,我将把以后遇到的比较有用的命令积累在这篇…

【转】C#开发PACS医学影像处理系统(三):界面布局之工具栏

转自:https://www.cnblogs.com/Uncle-Joker/p/13650330.html 工具栏布局采用WPF中Grid作为容器,按钮采用自定义样式和图标,并采用Separator分割线: XAML设计器代码: 其中 Style"{StaticResource ButtonStyle}&…

WinCE6.0 修改开机Logo方法

中秋假期已过,回来继续该博文主题。今天讲解第二种方法,将 Logo 图片的数据写入到 Nand Flash 中,在启动初始化 LCD 的时候,从固定的地址将数据读出并填充到显示缓存中。实验平台:WinCE6.0Android6410 4.3寸CLD。以下内…

sql 替换text字段中的指定字符

--text不能直接替换 --mbody未目标字段update b_mail set mbodyreplace(convert(varchar(max),mbody),_viewstate,viewstate) where mno124转载于:https://www.cnblogs.com/stealther/archive/2010/04/02/1703191.html

【转】DICOM开发工具总结

转自:DICOM开发工具总结_qimo601的专栏-CSDN博客 网上流行的DICOM协议开发工具: 1、DICOM开发类库主要有: (1)DCMTK(3.6.0), 官方下载网站,(如何安装编译DCMTK3.6.0) DCMTK实现了对DICOM图像…

Wince6.0编译错误经验总结

Wince6.0编译错误经验总结 一 编译wince系统并模拟运行应注意的问题 1): Public目录下的代码最好不要擅自修改。在确认需要修改时,得拷贝出来放到BSP目录下,再根据实际情况进行修改。 另外,编译WinCE系统时&#xff…

使用Combres 库 ASP.NET 网站优化

网站优化理论方面可以看杨正祎同学的文章如何提高网页的效率(上篇)——提高网页效率的14条准则,如何提高网页的效率(下篇)——Use YSlow to know why your web Slow,本文给你介绍一个实际的类库帮助你完成网…

【转】foreach for each for_each引发的探讨:c++世界中的循环语句

转自:foreach for each for_each引发的探讨:c世界中的循环语句_w_419675647的博客-CSDN博客 一 背景: 代码中看到 for each,注意,两个单词中间没有下划线,有同事问这个是不是和 for_each一样?…

基于ArcEngine实现分组统计面积的功能

可以使用IQueryFilterDefinition里的PostfixClause来实现SQL语句里的group by, order by等的功能。 例如: IQueryFilter pQueryFilter new QueryFilterClass(); pQueryFilter.subfield"qsdwdm,qsxz,dlbm,sum(mj) as mj,sum(tkmj) as tkmj" pQueryFilter.w…

【转】CT中的“层“与“排“的区别

转自:CT中的"层"与"排"的区别 自从离开医院,专业培训磁共振,有差不多5年时间没有接触CT了。影像技术及影像医学诊断说到底是一门经验技术累积学科,这种学科的特点就是熟能生巧,几年不碰&#xff0…

交易机项目工作日志--2013-01-30

又是一个不眠之夜。 昨天王哥做的新板子,用我编译的内核无法启动,卡在串口的初始化。但用开发板光盘上自带的内核确可以启动。 对比两个内核的打印信息。 [31m[UART] DMA init CH:0 [0m[31m[UART] DMA init CH:1 [0m [31m[UART] DMA init CH:1 [0m[3…

开机显示c:\windows\windows32\config\system文件损坏或丢失的解决方法(收集)

开机显示"c:\windows\windows32\config\system文件损坏或丢失。提示用软盘或光盘启动,用安装盘。 XP系统system文件损坏的修复 2009-04-15 Cbsi中国PChome.net 类型: 转载 来源: 163博客 责编: 吴宏 [评论1条] 方法一:用原盘XP光驱启动,…