【转】VTK和ITK中的坐标系统

当我们在处理医学图像和应用时,一个问题就是坐标系统之间的不同。在图像应用中通常有三个坐标系,分别是世界坐标系,解剖坐标系和图像坐标系。从左至右依次为世界坐标系,解剖学坐标系和图像坐标系
每种坐标系目的不同,呈现数据的方式也不一样。
解剖坐标系由三个平面组成,从侧面看为矢状面,从正面看为冠状面,从上往下看为横截面。当人体结构被看作图像时,其左边和右边刚好反过来,但其前后和上下保持不变。在解剖位置,使用xyz坐标系,X轴从前到后,y轴从左到右,z轴从上到下,并且适用于右手法则。下面的图像有助于帮助理解。
二维坐标系统

三维坐标系统
三维笛卡尔坐标系统,提供了三个物理空间维度-深度、宽度和高度。
点的x,y和z坐标可以表示到yz平面,xz平面,xy平面的距离。xy,yz和xz平面将三维空间分成8个部分,类似二维平面分成4部分。尽管对xy平面已经建立了4个象限的约定,但是在三维空间中只使用了第一象限,它包含的点的x,y,z坐标都为正。
**

世界坐标系

**
世界坐标系通常就是笛卡尔坐标系,其中放置了模型(例如MRI扫描仪或患者)。每个模型都有自己的坐标系,但是只有一个世界坐标系来定义每个模型的位置和方向。

解剖坐标系

对于医学成像技术而言,最重要的树模型坐标系时解剖坐标系(也称患者坐标系)。该空间由三个平面组成,用于描述人类的标准解剖位置。
轴向平面平行于地面并且从脚(底部)到头(顶部)分开
冠状面垂直于地面并从后(背部)向前(前部)分开
矢状面从右向左分开。
从这些平面可以看出所有轴的符号都为正。
解剖坐标系是一个连续的三维空间,其中已对图像进行了采样。 在神经成像中,通常相对于要扫描其大脑的人来定义此空间。 因此,沿着前后,下上和左右的解剖轴定义3D基础。
但是,不同的医疗应用程序对此3D基础使用不同的定义。 最常见的是以下基础:
LPS(Left,Posterior,Superior左,前,上)被用于DICOM图像在ITK中
LPS={从右到左}{从前到后}{从下到上}
RAS(Right,Anterior,Superior右,后,上)类似于LPS但前两个轴翻转,用于3D Slicer
RAS={从左到右}{从后到前}{从下到上}
这两个基础都同样有用和合乎逻辑。 仅仅需要知道图像所基于的基础。

图像坐标系统

图像坐标系描述了如何获取有关解剖结构的图像。 医学扫描仪会创建规则的矩形点和单元格阵列,这些点和单元格从左上角开始。 i轴向右增加,j轴向底部增加,k轴向后增加。
如来每个体素(i,j,k)的密度值被存储之外,解剖坐标系的原点和间隔也被存储。
原点表示在解剖坐标系中的第一个像素(0,0,0).eg(100mm,50mm,-25,)
图像间隔表示每个轴体素间的距离,eg(1.5mm,0.5mm,0.5,)

在这里插入图片描述
使用原点和间隔,体素在解剖坐标系中相应的位置就可以计算出来。

图像转换

从图像空间向量(i,j,k)到解剖空间向量x是一个仿射变换,是由线性变换A和平移变换t组成
在这里插入图片描述
转换矩阵A是一个3x3矩阵,携带所有空间方向和轴缩放的信息。t是一个3x1的向量,包含第一个体素几何位置的信息。
在这里插入图片描述
最后一个等式表明线性变换是通过矩阵乘法,平移是通过矩阵加法实现的。为了通过矩阵来表示转换和平移,必须使用一个增强矩阵。矩阵A要求在底部增加额外一行0,右边额外增加一列,平移向量。右下角为‘1’
在这里插入图片描述
取决于使用的解剖空间(LPS OR RAS),这个4x4矩阵被称为IJKtoLPS或IJKtoRAS矩阵。

2D计算IJtoLS矩阵

下列图像展示了解剖空间(LPS)在左边和相应的图像坐标在右边
在这里插入图片描述
原点(在解剖空间第一个像素的坐标)是(50mm,300mm),两个像素之间的间隔是(50mm,50mm).
在2D例子中A是一个2X2矩阵t是一个2X1向量。因此线性变换等式为在这里插入图片描述
通过将IJtoLS矩阵与右侧的向量相乘,将获得以下乘积:
在这里插入图片描述
等式和矩阵相乘看出总共有6个未知参数(A11,A12,A21,A22,t1,t2).
但是,有关原点和间距的知识允许图像和解剖空间之间具有以下关系:
在这里插入图片描述
因此有如下6个方程在这里插入图片描述
根据上面提到的t包含关于第一个像素几何坐标的信息。因此IJtoLS矩阵为
在这里插入图片描述
再R(A)S基中有如下示意图
在这里插入图片描述
IJtoRS矩阵为在这里插入图片描述
这个矩阵和IJtoLS矩阵很相似,但有2个不同
由于原点的不同t改变了
有轴翻转了,所以IJtoRS矩阵的第一列要加负号。

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

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

相关文章

(ZT)在日本市场推广 iPhone 应用的经验

原贴:http://www.cocoachina.com/appstore/market/2010/0728/1942.html 本文作者为 CocoaChina 会员 “lawrencewu”,是一位专攻日本市场的 iPhone 开发者。他的10款 App (9个收费,一个免费)在9个月的时间里已经取得了…

嵌入式系统 Boot Loader 技术内幕

1. 引言 在专用的嵌入式板子运行 GNU/Linux 系统已经变得越来越流行。一个嵌入式 Linux 系统从软件的角度看通常可以分为四个层次: 1. 引导加载程序。包括固化在固件(firmware)中的 boot 代码(可选),和 Boot Loader 两大部分。 2. Linux 内核。特定于嵌入…

互联网医院 2020年突出成就_【关注】中国社科院发布2020中国医院互联网影响力排行榜...

导 读:11月4日,中国社科院健康业发展研究中心联合好大夫在线,发布2020中国医院互联网影响力排行榜,这是该榜单连续第5年发布。中国社科院健康业发展研究中心以好大夫在线平台611.6亿次的患者浏览轨迹、6648万患者的在线问诊记录、4.7亿次医…

集合附加属性(HACK)

传说中的HACK… 靠看文档是不知道的 http://wekempf.spaces.live.com/blog/cns!d18c3ec06ea971cf!468.entry?wawsignin1.0&sa837408022 http://blogs.msdn.com/b/johngossman/archive/2008/07/28/how-to-initialize-an-attached-dependencyproperty-of-type-collection.as…

h5链接加上 vconsole_又出爆款!凯美瑞和红旗H5没法比!

论舒适性而言,三厢版车型的优势还是十分明显的。基本可以满足日常商务用途和家用等多种用车环境。今天带来的两款车都是三厢车,分别是红旗H5和宝马1系。那这两款车究竟是骡子是马,还是让大家一起来看看它们的实际表现吧。车型:红旗…

程序员:如何写出杀手级简历

1. 简历里要有你工作的技术细节: 编程语言,你的个人成就和水平。 我有时会看到一些简历,里面的工作描述就只有一行话,像这样: * 在一个3人组成的团队里开发一个 e-mail 插件。筛选者在阅读你的简历时心里都有选择标准&…

HDOJ 1010 HDU 1010 Tempter of the Bone ACM 1010 IN HDU

MiYu原创, 转帖请注明 : 转载自 ______________白白の屋题目地址:http://acm.hdu.edu.cn/showproblem.php?pid1010 题目描述:代码Tempter of the BoneTime Limit: 2000/1000MS (Java/Others) Memory Limit: 65536/32768K (Java/Others)Total Submission(s): 16817Accepted …

console application_灵活使用 console 让 js 调试更简单

摘要: 玩转console。原文:灵活使用 console 让 js 调试更简单作者:前端小智Fundebug经授权转载,版权归原作者所有。Web 开发最常用的高度就是 console.log ,虽然 console.log 占有一席之地,但很多人并没有意…

交易机项目工作日志--2013-3-3

今天的主要任务是给板子烧程序。烧了将近100块,发现一些问题。 1. usb otg 不好用,将usb线查到机箱后面的usb后,且让板子上的插头舒展开后,依然不好使,发现是核心板虚焊造成的,核心板和底板不平。 2. usb…

《C#本质论》读书笔记(十二)构造器 @ Lennon

在C#里,很多人可能对属性这个概念很熟悉,平时属性是最常用到的.而我们很少会去用到构造器.而且很多人对构造器的一些概念还不是很熟悉,也有人认为属性等同于构造器.今天在这里谈谈构造器的声明.构造器重载.默认构造器.构造器与属性的区别等.. 构造器的声明 classEmployee {publ…

a byte of python中文版_面试官问 Python 版 “垃圾回收”机制,我没答上来

点击“开发者技术前线”,选择“星标?”13:21 在看|星标|留言, 真爱选自《萌萌哒的柯基》 作者:heroyfhttps://www.heroyf.club/2019/10/23/python_gc/前言对于python来说,一切皆为对象,所有的变量赋值都遵循着对象引…

漫谈 Linux,Windows 和 Mac

好了,现在来一点技术性的。这段时间收到很多人的来信(大部分自称是菜鸟)。他们看了我很早以前写的推崇 Linux 的文章,想知道如何“抛弃 Windows,学习 Linux”。天知道他们在哪里找到那么老的文章,真是好事不…

AspNet2.0页面生命周期

AspNet2.0页面生命周期 页面框架通过如下过程处理aspx文件请求: 1:解析aspx文件,并创建一个控件树; 2:使用控件树动态实现一个继承自Page类的类或者控件 ; 3:动态编译类; 4:缓存编…

数字时钟设计verilog_数字IC设计基本概念之创建时钟

来自微信公众号 “数字芯片实验室”时序分析的一个重要部分是准确地指定时钟和相关属性,例如延迟(latency)和不确定性(uncertainty)。 EDA工具可以分析以下类型的时钟信息:时钟网络latency和 skew&#xff…

软件开发模式对比(瀑布、迭代、螺旋、敏捷)

1、瀑布模型是由W.W.Royce在1970年最初提出的软件开发模型, 瀑布式开发是一种老旧的计算机软件开发方法。 瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求分析、设计、编码、集成、测试、维护的步骤顺序进行。 步骤成果作为衡量进度的方法&a…

photoshop script

http://www.adobe.com/devnet/photoshop/scripting/转载于:https://www.cnblogs.com/275095923/archive/2010/08/23/1806871.html

敏捷开发流程的8个步骤_敏捷开发——个体和互动高于流程和工具

敏捷开发是软件公司主流的项目管理方法,敏捷方法论有许多种,包括Scrum、极限编程(XP)以及精益(Lean)方法,但是它们都具有一个共同点:遵循敏捷宣言和敏捷原则。透明性。每一个敏捷项目成员都知道即将做什么以及项目进展如何。经常性…

瀑布开发

提到“瀑布开发”的时候,大部分人们可能会联想到尼亚加拉瀑布下要进行房地产开发,然后,设想一下,当您告诉他们实际上瀑布开发是一种包含多个阶段的反复叠代的软件开发模型时,他们会多么惊讶。这篇文章将为您提供一份关…

ArcGis Desktop10 注册机授权方法与安装步骤

今天,由于需要处理一些空间数据,安装ArcGIS Desktop10,所以就把注册机的授权方法与安装过程,写成Blog与大家一起分享! 第一步:安装 ArcGIS许可管理器。如图所示: 第二步:打开注册机&…