先说段废话,最近项目进行到了绘制定位线的时候,因为以前没有接触过CT、MR图像所以想当然的用MPR的方式去实现定位线,居然还实现了。不过后来跟临床的人谈了下,发现这种方式是错误的。浪费了很多时间。
教训:不懂的时候要去调研不能自己瞎琢磨。

定位线实现的方式

一、空间中如何定位

定位线即切片在定位图上的交线,在一次检查当中,所有dicom图片及后期MPR处理生成的dicom图都是在一个统一的空间坐标系下的。这个前提才保证了定位线的可计算。

下面来看一个CT、MR图是如何在空间中确定位置的。

如上图imagePositionPatient字段表示的是当前图像的左上角在空间中的三维坐标。imageOrientationPatient表示的是当前图像的第一行在空间中的三维方向向量与第一列的三维方向向量。

这两个字段就可以用来确定一个平面了。

还需要三个字段就可以确定一个空间矩形。

上面提到的imagePositionPatient字段的单位是毫米,也就是columns*pixelSpacing表示的就是在空间中的矩形宽。

以上就可以完整的确定当前dicom所表示的图像在空间中的准确位置了。

二、计算定位线

首先要设定定位图为Plane1,切片图为Plane2。

1.根据Plane1的两个方向向量计算出Plane1的法向量n(x);

2.根据Plane2的两个方向向量和左上角坐标以及row,columns,pixelSpacing算出Plane2的其他三个角的空间坐标。

3.根据第一步计算出的Plane1的法向量与plane2四个点的的空间坐标计算出四个点与Plane面的矢量位移。这个矢量位移是有正负的。如果点1和点2的矢量位移一正一负则说明点一与点二连城的线段是穿过Plane1的也就是有交点的。

4.有步骤三可以计算出两个交点的三维坐标

5.将两个交点的三维坐标转化为二维坐标。这一步的计算方法是通过Plane1原点(左上角点)到步骤4得到的点一的向量与Plane2的1轴(第一行)的方向向量的夹角的余弦函数,点一在Plane1上的二维坐标X就等于余弦值*(Plane1原点到点一的距离)。

6.第五步即可算出定位线端两端的点的二维坐标。注意单位不是pixel而是毫米。所以绘制的时候要除以Plane1的pixelSpacing.如果有缩放还要乘以缩放的倍数。

三、上图

四、参考文章

1.

http://blog.csdn.net/inter_peng/article/details/62046916

2.

http://znzk.scuec.edu.cn/ch/reader/create_pdf.aspx?file_no=20140119&flag=1&journal_id=znmzdxxbzr&year_id=2014

CT及MR的定位线功能实现相关推荐

  1. CT和MR影像实现 定位线功能

    CT和MR影像实现 定位线功能(此处采用JS编码,其他语言也可实现,具体场景,具体分析) 需求 : 熟悉医学影像DICOM协议 遇到的问题 计算交点坐标转换为平面坐标,需要采用正确的方式.(不然会出现 ...

  2. pacs定位线_PACS中MR序列定位线的绘制

    PACS 中 MR 序列定位线的绘制 吴恢远 ; 吴恢升 [摘 要] 根据核磁共振原理成像的 MR 设备 , 其扫描序列中的图像成像参数复杂 , 如 何使临床医生定位当前 MR 图像切片在组织器官中的 ...

  3. 医学序列图像定位线绘制基本方法介绍

    本文由Markdown语法编辑器编辑完成. 1. 定位线的概念和意义 随着医学成像技术的不断发展,计算机断层扫描(CT)和核磁共振成像(MRI)已经越来越多地应用在了相关疾病的诊断中.医生通过分析病人 ...

  4. VTK系列教程十一:MPR定位线

    我们已经实现了MPR图像的显示,但只能获取垂直某个轴的截面图,那如何获取带有倾斜角度的截面图呢?这样的截图对于不规则病灶和器官是有意义的. VTK其实给我们提供了一种非常简单的方法:vtkReslic ...

  5. Revit 二次开发---用命令绘制墙体预设置定位线

    绘制墙之前要预先设置"定位线"(我是调用的Revit命令去画墙), 首先是预设置"定位线": 直接在百度上搜索"Revit 预设值定位线", ...

  6. 【转】pacs定位线_C#开发PACS医学影像处理系统(十五):Dicom影像交叉定位线算法

    转自:https://www.cnblogs.com/Uncle-Joker/p/13686618.html 1.定位线概念:某个方位的影像在另一个方向的影像上的投影相交线,例如横断面(从头到脚的方向 ...

  7. pacs定位线_C#开发PACS医学影像处理系统(十五):Dicom影像交叉定位线算法

    1.定位线概念:某个方位的影像在另一个方向的影像上的投影相交线,例如横断面(从头到脚的方向)在矢状面(从左手到右手)上的影像投影面交线. 举个例子:右边的是MR(核磁共振)的某一帧切片,这是从头开始扫 ...

  8. 有了这款工具,定位线上问题事半功倍|云效工程师指北

    大家好,我叫刘玄,负责云效流水线的开发.程序员在日常工作中经常会遇到一些线上问题需要排查,本文的主人公程序员小张也不例外.但排查的过程却时常令他困扰不已.让我们一起看看他遇到了哪些问题,又是怎么解决的 ...

  9. 前端录屏+定位源码,帮你快速定位线上bug

    前言 如何快速定位线上bug,是多数开发者都会遇到的难题 web-see 前端监控方案,提供了 前端录屏+定位源码 方式,让bug无处藏身 这是前端监控的第二篇,该篇讲解如何实现错误还原功能,第一篇 ...

最新文章

  1. ViewPager相互嵌套,导致子ViewPager无法滑动,且子ViewPager中的view无法被点击
  2. Cloudera Manager安装之利用parcels方式(在线或离线)安装3或4节点集群(包含最新稳定版本或指定版本的安装)(添加服务)(Ubuntu14.04)(五)...
  3. 慕课网Spark SQL日志分析 - 4.从Hive平滑过渡到Spark SQL
  4. [蓝桥杯2016初赛]密码脱落
  5. 生命计算机在线,抖音生命计算器
  6. java给图片增加水印(图片水印,文字水印)
  7. 20个Python实战项目(附源码),拿走就用。
  8. opencv android模版匹配,基于opencv模板匹配的目标检测方法
  9. Java线程状态RUNNABLE详解
  10. 无视任何限制和权限 强制删除文件夹/文件
  11. 计算机毕业设计ssm吃到撑零售微商城
  12. 用什么词典可以翻译php,PHP调用有道词典翻译API实现通译功能及代码
  13. 华为mate7android版本,华为Mate7升级安卓6.0(EMUI4.0)M版本详细图文教程
  14. Apple pencil 无法连接到ipad的解决办法汇总
  15. 「助记词密盒」用户协议与隐私政策
  16. Comparator.comparing嵌套对象倒序以及多重条件排序
  17. 后台服务(Service)
  18. oracle函数自定义日历周获取周数
  19. 用PYTHON画斐波那契数列银杏树(代码可复制)
  20. U盘无权访问,解决方法

热门文章

  1. 物联网专业可以报计算机岗位吗,现在物联网工程专业的就业岗位有哪些?小编介绍...
  2. simulink中的变压器参数解释及测量方法
  3. ossec开源入侵检测系统安装配置
  4. 关于ISI、SCI、EI、IEEE、Elsevier、Springer的理解
  5. OpenCV仿射变换--平移
  6. ARC 075 D Mirrored - 搜索
  7. npm install执行报错:ENOENT: no such file or directory, open ‘D:\Node\package.json‘
  8. fonttype: Font T1 is of type Type3
  9. ue4 发射子弹功能
  10. java将五元换成1元5角_C,一个代码来获得一笔钱转换成四分之一,硬币,镍币,便士[关闭]...