医学图像——医学坐标体系

转自
作者:豚大叔的小屋
链接:https://www.jianshu.com/p/b8fe11a33319
仅作为个人学习记录

1.医学坐标体系介绍

医学图像处理的一个难题是坐标体系的不一致。当前,在图像处理的程序中通常运用三种坐标体系:世界坐标体系,解剖学上的坐标体系(也称为病人坐标体系)和图像坐标体系。每一种坐标体系都服务于某一个目标,以不的方式呈现数据。

下面示意图将描述三个空间坐标体系以及它们对应坐标轴
在这里插入图片描述

2.世界坐标体系:

世界坐标体系是典型的笛卡尔坐标体系,在这个坐标体系中模型(如核磁扫描器,病人)被定位。每个模型都有它自身的坐标体系但是只存在一个世界坐标体系来定义模型的位置与方向。

3.解剖学坐标体系——(LPS 或 RAS)

对医学图像处理技术来说,最重要的坐标体系是解剖学空间坐标体系。这个坐标体系由三个位面组成,用来描述标准的人体在解剖学上的位置。在解剖学坐标系中,单位基本都是mm。
在这里插入图片描述

解刨学坐标系
横断面(The axial plane):与地面平行,分离头部(Superior)与脚部(Inferior);

冠状面(The coronal plane):与地面垂直,分离人体的前(Anterior)后(Posterior);

矢状面(The sagittal plane):与地面垂直,分离人体的左(Left)右(Right)

这个解剖学坐标体系是一个连续的三维空间,在这个空间中,图像被采样。在神经成像中,3D基本上通过解剖轴Anterior-Posterior,Inferior-Superior,Left-Right来定义。对这些位面来 都以正向标记。(如S轴 --Superior的负面呈现为I轴–Inferior)

不同医学应用软件运用不同的3D基本定义。从根本上来说,这两种坐标轴(LPS和RAS)是等价使用的,有着相同的逻辑,但是有必要知道图像到底引用了哪种坐标轴。RAS与LPS类似,不同的是两个轴翻了个头。

1)LPS(Left,Posterior,Superior),主要用于Dicom与ITK工具包上

LPS

2)RAS(Right,Anterior,Superior),主要3D Slicer用RAS

RAS

4.图像坐标体系——(IJK)

图像坐标体系描述一幅与解剖相关的图像是怎样被获取的。医学扫描仪器创建了规则的点和网格的矩形数组。图像坐标系的原点在左上角,i坐标轴向右递增,j坐标轴向下递增,k坐标轴向后递增。除每个立体像素voxel(i,j,k)的强度值外,这个解剖学坐标的原点以及间距也被保存下来。
在这里插入图片描述

图像坐标系

5.解刨学坐标系和图像坐标体系

origin 原点:代表第一个voxel(0,0,0)体素在解剖学坐标体系中的位置,单位mm。如原点(100mm, 50mm,-25mm),是图像原点给对应的解剖学坐标-----在解剖学坐标系中,单位基本都是mm。

spacing间距:表示指定立体像素在各个坐标轴的实际距离间隔,单位mm,(1.5mm, 0.5mm, 0.5mm)---------在解剖学坐标系中,单位基本都是mm。

通过解剖学坐标系我们获得了一个3D图像,这个3D图像中的坐标原点(原点是对应图像坐标系说的)在解剖学坐标系中并不是原点,而是对应着一个坐标。
在这里插入图片描述

利用原点和间距,每个立体像素在解剖学坐标体系中的对应位置都能够被计算出来。利用图像坐标系中的坐标得到各个体素之间的相对位置,然后根据相对位置和重采样的分辨率,就可以计算体素在解剖学坐标系中的位置了。解剖学坐标系中的单位都是1mm,写程序时无法获取1mm,而用图像坐标系中的坐标,不用考虑单位,直接根据索引获取就可以。

  • 5.1理论说明
    利用原点和间距,每个立体像素在解剖学坐标体系中的对应位置都能够被计算出来。

从图像空间数组(i j k)’变换为x 是一个仿射变换,有线性变换A 跟随一个转换因子t组成。

X = A(i j k) + t

这个转换矩阵A 是一个33矩阵 携带空间方向以及轴缩放的所有信息。t是一个31矢量 包含第一个立体像素的几何位置的信息。
在这里插入图片描述

最终方程式表示为线性变换通过一个矩阵乘法加上一个矢量得到执行;最终变换为以下方程式。
在这里插入图片描述

根据利用的解剖学空间坐标轴(LPS 或 RAS),这个4*4矩阵被称IJKtoLPS 或IJKtoRAS矩阵,因为它表示从IJK到LPS或RAS的转换。

  • 5.2 举例(2D)说明:IJ到LS的转换矩阵
    在这里插入图片描述

下边是L§S坐标系中LS上图像,上边是与之对应的IJ(K)坐标系图像。注意,两个坐标系的对应位置和关系。假设原点origin=(50mm, 300mm),间隔spacing=(50mm,50mm)。转换方程式和计算过程如下图。 根据已知原点与间距的值可得到以下等式( 恒等于,三条横线表示的数学符号写作:≡):现在有6个未知变量 A11,A12,A21,A22,t1,t2需要确定。
在这里插入图片描述
在这里插入图片描述

以下为为个人思考: 根据以上恒等式可以列出3组共6个方程组,就可以解出6个未知量。解剖学坐标体系和图像坐标系的像素点属于不同的坐标系,但是一定存在一一对应的关系。L对应i, S对应j,即就是(L,S)=(i,j),原点(0,0)对应(50,300),(1,0)对应(100,300),(0,1)对应(50,250)。把上面三组(0,0)-(50,300),(1,0)-(100,300),(0,1)-(50,250)带入上述公式,就可以直接解出6个未知变量 A11,A12,A21,A22,t1,t2。

在这里插入图片描述

6. 图像坐标系和世界坐标系

世界坐标转换为图像坐标时会涉及到两个参数 origin和spacing。 需要转换的世界坐标减去origin,再除以spacing就是图像坐标,也就是结节中心坐标减去origin再除以spacing,就是对应像素在图像坐标系中的位置。

转自
作者:豚大叔的小屋
链接:https://www.jianshu.com/p/b8fe11a33319

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
本资源为Qt绘图基础,世界坐标系转换为逻辑坐标系。世界坐标系原点在视图左上角,本例子通过世界坐标转换,将坐标原点定位在视图中央,Y轴向上,X轴向右,并绘制坐标轴,基于逻辑坐标系下的绘图,可将转换关系函数取消生效,对比世界坐标系下的绘图。 重写PainterEvent函数: void QtPixPainter::paintEvent(QPaintEvent* event) { QPainter painter(this); // 反走样 painter.setRenderHint(QPainter::Antialiasing, true); //物理坐标系与逻辑坐标系的转换,如果不转换,下面的绘图都是在世界坐标系下 setWorldTransform(painter); // 其他一些绘制矩形,多边形的例子,经过上面转换,都是在逻辑坐标系下 drawRectScale(painter); //draw_shearRect(painter); //利用rotate()函数进行比例变换,实现缩放效果 //draw_rotate_act(painter); //draw_by_save_restore(painter); //transform_draw_SinX(painter); transform_draw(painter); local_drawConvexPolygon(painter); } // 将世界坐标(原点左上角)转换为逻辑坐标(原点在屏幕中间) QPointF QtPixPainter::mapToScene(const QPointF& point) { QTransform transMatrix = _transform.inverted(); //翻转矩阵? return transMatrix.map(point); //将点piont映射到transMatrix定义的坐标系中来 } // 将鼠标的逻辑位置返回并以标签形式展示 void QtPixPainter::mouseMoveEvent(QMouseEvent* event) { QString msg; QPointF mouse_po = mapToScene(event->pos()); //总是返回屏幕物理坐标系 double x = mouse_po.x(); // 总是返回屏幕物理坐标系 double y = mouse_po.y(); QString str = "(" + QString::number(x) + "," + QString::number(y) + ")"; //qDebug()<<"world x = "<pos().x()<<",world y = "<pos().y(); m_mouse_lable->setText(str); }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值