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

2023-10-27

当我们在处理医学图像和应用时,一个问题就是坐标系统之间的不同。在图像应用中通常有三个坐标系,分别是世界坐标系,解剖坐标系和图像坐标系。从左至右依次为世界坐标系,解剖学坐标系和图像坐标系
每种坐标系目的不同,呈现数据的方式也不一样。
解剖坐标系由三个平面组成,从侧面看为矢状面,从正面看为冠状面,从上往下看为横截面。当人体结构被看作图像时,其左边和右边刚好反过来,但其前后和上下保持不变。在解剖位置,使用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矩阵的第一列要加负号。

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

【转】VTK和ITK中的坐标系统 的相关文章

随机推荐

  • linux下使用qt ,出现Unable to create a debugging engine问题的解决方法

    在进行调试 qt程序的时 出现了问题 Unable to create a debugging engine 根据百度经验 查看Kits下面的调试工具是否存在 如下图 我的调试工具是存在的 那么不能成功体调试的原因是什么呢 一个stack
  • MySQL之count(1)和count(*)的区别

    闲扯 很久以前 有一次我写了一个SQL select count from test 然后这个代码被我的其中一家公司的MySQL专家看到了 叫我过去说 你难道不知道咱们不允许写count 吗 你不知道count 1 更快吗 说完二话没说把我
  • jupyter修改默认工作路径

    修改Anaconda自动安装的jupyter notebook的默认工作路径 Anaconda默认安装的jupyter的工作路径是C Users 用户名 想要修改其默认的工作路径具体步骤如下 首先打开 Anaconda Prompt 在 A
  • 【react】react18的学习(十二)– 底层原理(二)之 迭代器 iterator

    迭代器iterator 是一种 ES6 规范 具有这种机制的数据结构才可以使用for of循环 返回每一项的值 原型链具有Symbol iterator属性的数据结构都具备 如数组 部分类数组 字符串等 普通对象就不能用 for of循环原
  • 【Echarts】配置项归纳

    Echarts 配置项归纳 一 title 二 legend 三 grid 四 xAxis yAxis 五 polar 六 radiusAxis 七 angleAxis 八 radar 九 dataZoom 1 内置型数据区域缩放组件 2
  • linux opencv人脸检测,OpenCV实现人脸检测例程

    前段时间看的OpenCV 其实有很多的例子程序 参考代码值得我们学习 对图像特征提取三大法宝 HOG特征 LBP特征 Haar特征有一定了解后 对本文中的例子程序刚开始没有调通 今晚上调通了 试了试效果还可以 还需要深入理解 值得大家动手试
  • Apache Commons DbUtils 快速上手

    Apache Commons DbUtils 快速上手 Hibernate太复杂 iBatis不好用 JDBC代码太垃圾 DBUtils在简单与优美之间取得了完美平衡 一 概述 DbUtils小巧的Java数据库操作工具 它在JDBC的基础
  • Keepalived结合Nginx实现WEB高可用服务

    前言 随着Nginx在国内的发展潮流 越来越多的互联网公司都在使用Nginx Nginx高性能 稳定性成为IT人士青睐的HTTP和反向代理服务器 Nginx负载均衡一般位于整个网站架构的最前端或者中间层 如果为最前端时单台Nginx会存在单
  • Lion:优化算法的符号发现

    文章目录 摘要 1 简介 2 算法的符号发现 2 1 程序搜索空间 2 2 高效搜索技术 2 3 泛化 方案选择与简化 3 Lion的推导与分析 3 1 求导 3 2 分析 4 Lion评估 4 1 图像分类 4 2 视觉 语言对比学习 4
  • 数据采集清洗

    文档名称 使用说明 程序名称 数据采集清洗分词V1 0 1简介 1 1数据采集程序 数据采集程序基于Python Urllib request模块编写 Urllib request是 HTTP 请求模块 可以模拟发送请求 支持自动确定响应内
  • 通讯录的实现(C语言版)

    实现一个通讯录 通讯录可以用来存储1000个人的信息 每个人的信息包括 姓名 性别 年龄 电话 住址 提供方法 添加联系人信息 删除指定联系人信息 查找指定联系人信息 修改指定联系人信息 显示所有联系人信息 清空所有联系人 以名字排序所有联
  • RabbitMQ-版本号查看

    查看RabbitMQ的版本号 Eddie Wang 有时需要在服务器上查看rabbitmq当前安装的版本号 通过rabbitmqctl status就可以获得 命令如下 sudo rabbitmqctl status grep rabbit
  • Excel表格不能筛选是怎么回事?

    使用Excel时发现表格突然不能筛选了 没办法正常使用 这是怎么回事呢 纯净之家 win7纯净版系统 win7 ghost 纯净版 Excel表格不能筛选是什么原因 1 工作表被保护了 如果工作表被保护而且限制了筛选 就无法筛选了 解决办法
  • 陀螺产业区块链第七季

    2020年4月 国家发改委在例行新闻发布会上宣布区块链被正式列为新型基础设施中的信息基础设施 自此区块链正式搭上新基建的 风口 可以看出 区块链 正作为数字经济革命中的重要支撑 以新一代基础设施的姿态快速发展并渗透到我国经济的各个领域 作为
  • 关联分析算法(二)——FP-growth算法与python用法

    FP growth算法思想与Apriori类似 这里使用FP tree frequent pattern tree 数据结构来存储频繁项集 在样本量多的情况下比Apriori算法更加快速高效 案例 使用mlxtend工具包 import p
  • Windows Server 2008 R2 域控服务器运行nslookup命令默认服务器显示 UnKnown

    一 问题 域控服务器DOS窗口运行nslookup命令提示如下 二 原因分析 主要原因在于域控服务器的DNS服务器没有设置反向查找区域 计算机名称是通过IP地址反向查找到域控服务器的计算机名称 三 解决办法 1 右键反向查找区域 新建区域
  • C++编程——类模板

    文章目录 1 类模板语法 2 类模板与函数模板的区别 3 类模板中成员函数创建时机 4 类模板对象做函数参数 5 类模板与继承 6 类模板成员函数类外实现 7 类模板分文件编写 8 类模板与友元 9 类模板案例 1 类模板语法 类模板的作用
  • Vue中button的颜色更改

    上一次我学到了vue引用element的按钮测试 更改按钮颜色的时候 我跟的up主只告知了一种颜色即红色 但是他是这样写的
  • leecode69X的平方根和367有效的完全平方根-题目讲解和代码

    代码讲解 69 源代码 class Solution public int mySqrt int x int left 0 right x 2 1 int m 0 while left lt right 易错点1 容易忽略这个当平方比较大的
  • 【转】VTK和ITK中的坐标系统

    当我们在处理医学图像和应用时 一个问题就是坐标系统之间的不同 在图像应用中通常有三个坐标系 分别是世界坐标系 解剖坐标系和图像坐标系 每种坐标系目的不同 呈现数据的方式也不一样 解剖坐标系由三个平面组成 从侧面看为矢状面 从正面看为冠状面