【转】DICOM中几个判断图像方向的tag

转自:https://www.cnblogs.com/h2zZhou/p/9072967.html

在DICOM标准里,有三个TAG与成像的方向相关。

参考来源:Kitware关于DICOM方向的说明

http://public.kitware.com/IGSTKWIKI/index.php/DICOM_data_orientation

包括

1、Image Position (0020,0032): specifies the x, y, and z coordinates of the upper left hand corner of the image. In other words, this tag specifies the coordinates of the the first voxel transmitted.

图像位置:指示了图像左上角的第一个像素的空间坐标(x,y,z)。 也就是DICOM文件传输的第一个像素的坐标

2、Image Orientation (0020,0037): specifies the direction cosines of the first row and the first column with respect to the patient. The direction of the axes are defined by the patients orientation to ensure LPS system ( x-axis increasing to the left hand side of the patient, y-axis increasing to the posterior side of the patient and z-axis increasing toward the head of the patient )

图像方向:指示了图像第一行和第一列相对于病人的方向cosine。 坐标轴的方向是根据病人的方向来确定的(X轴指向病人的左手边,y轴指向病人的后面,Z轴指向病人的头部。

3、Patient position( 0018,5100) : Patient position descriptor relative to the equipment. Required for CT and MR images. Possible values: HFP= head first-prone, HFS=head first-supine, HFDR= head first-decibitus right, HFDL = head first-decubiturs left, FFP = feet first-prone, FFS, FFDR, FFDL.

病人的位置:  是描述病人相对于CT或者MR等成像设备的位置。 HFP:头部在前,俯卧; HFS:头在前,仰卧

一个例子:

某个切片 m

0020,0032  Image Position (Patient): -99.8046875/-282.8046875/94.25

0020,0037  Image Orientation (Patient): 1/0/0/0/1/0 

0018,5100  Patient Position: HFS 

另外一个切片n

0020,0032  Image Position (Patient): -99.8046875/-282.8046875/157.5

0020,0037  Image Orientation (Patient): 1/0/0/0/1/0 

0018,5100  Patient Position: HFS 

我们发现

图像的位置坐标中,只有Z轴坐标有变化,而且从Z坐标的大小可以看出,m切片是在n切片的下方

知道了图像的方向,就很容易进行后面的图像分析了

1.      Image Orientation:

        如之前在博文《DICOM中几个判断图像方向的tag》中提到的ImageOrientation(0020,0037)表示的是图像第一行和第一列相对于病人的方向。而在DICOM坐标系是根据病人的方向来确定的,其中X轴正向指向病人的左侧,Y轴正向指向病人的背部,Z轴正向指向病人的头部。

        在医学影像处理软件中,最常见的是将导入系统的MRI/CT序列以三视图的形式进行呈现,分别为轴状位(Transverse/Axisplane)、冠状位(Coronal/Frontal plane)和矢状位(Sagittal plane)。以下图显示的是这三个方位对应的切面方位,以及在成像过程中对应的坐标系。

 

图1 成像坐标系

 

图2 三视图

2.     Software and Coding

 

 图3 医学软件中标准三视图与MPR变换后的图像方位

       如图3所示为某一款医疗影像软件在载入一个患者头部MRI序列后,三个不同视图中所标注的图像方位图。可以判断出这三个视图依次为轴状位(AP-LR)、矢状位(HF-AP)、冠状位(HF-LR)。

       在网上找到的计算视图中方位的程序如下:

char *ImageOrientationLayer::ComputeOrientation(Vector3D vector)
{
        char *orientation=new char[4];
        char *optr = orientation;
        *optr='\0';
 
        char orientationX = vector.getX() < 0 ? 'R' : 'L';
        char orientationY = vector.getY() < 0 ? 'A' : 'P';
        char orientationZ = vector.getZ() < 0 ? 'F' : 'H';
 
        double absX = fabs(vector.getX());
        double absY = fabs(vector.getY());
        double absZ = fabs(vector.getZ());
 
        int i;
        for (i=0; i<3; ++i) {
                if (absX>.0001 && absX>absY && absX>absZ) {
                        *optr++=orientationX;
                        absX=0;
                }
 
                else if (absY>.0001 && absY>absX && absY>absZ) {
                        *optr++=orientationY;
                        absY=0;
                }
 
                else if (absZ>.0001 && absZ>absX && absZ>absY) {
                        *optr++=orientationZ;
                        absZ=0;
                }
 
                else break;
 
                *optr='\0';
        }
 
        return orientation;
}  

结合到软件开发中,则首先需要在窗口的top,bottom,left,right中间找到四个单位向量,(0,1,0),(0,-1,0),(-1,0,0),(1,0,0),将其对应的窗口坐标点转化为世界坐标系的点,求出与(0,0,0)所对应的世界坐标原点的四个向量并且归一化,作为上述ComputeOrientaton函数的参数传进去,即可得到当前图像在世界坐标系下的方位。

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

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

相关文章

学习 SQL 语句 - Select(4): 排序

Order By Asc|Desc本例效果图:代码文件:unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls, ExtCtrls, Grids, DBGrids, DB, ADODB;typeTForm1 class(TForm)DBGrid1: TDBGrid;DataSource1: TDataSource;…

【转】Ubuntu 16.04 远程桌面

转自&#xff1a;实现Windows直接远程访问Ubuntu 18.04&#xff08;旧版本也支持,无需安装第三方桌面,直接使用自带远程工具&#xff09; - 法号阿兴 - 博客园 一、设置Ubuntu 16.04 允许进行远程控制 首先&#xff0c;我们先设置Ubuntu的远程控制&#xff0c;将其设置为允许被…

GridView应用整理

2009年5月31日下午 21:58:38 获取GridView中RowCommand的当前选中行索引 <asp:GridView ID"BookGridView" runat"server"><Columns><asp:BoundField DataField"id" HeaderText"图书编号" /><asp:BoundField Data…

【转】Ubuntu下使用sysv-rc-conf管理服务

转自&#xff1a;https://www.linuxidc.com/Linux/2016-11/136834.htm sysv-rc-conf简介 sysv-rc-conf是一个强大的服务管理程序&#xff0c;群众的意见是sysv-rc-conf比chkconfig、rcconf好用。 背景知识 Ubuntu运行级别 Linux 系统任何时候都运行在一个指定的运行级上&…

【转】How to install VNC server on ubuntu 14.04

转自&#xff1a;https://www.krizna.com/ubuntu/install-vnc-server-ubuntu-14-04/ VNC server is used to share graphical desktop which can be controlled from other computers . This guide is helpful to install VNC server on Ubuntu Desktop 14.04, Ubuntu server …

Nsis 使用1-- 依条件显示自定义页面 custom page on condition

在制作安装程序的时候&#xff0c;我们会经常遇到根据用户的不同选择而随后显示不同的安装信息采集页面。 其实很简单&#xff0c;在使用NSIS的时候发现了这么个方法&#xff0c;记下来防止自己忘记哈&#xff1a;Code; MUI 2 compatible ------!include "MUI2.nsh"!…

WINCE6.0操作系统---内核(kernel)学习

备注&#xff1a;这里的内核指kernel&#xff0c;其表现形式为kernel.dll&#xff0c;OS指操作系统&#xff0c;core指核心。 图1 WINCE6.0体系结构 1. kernel的组成和功能 WINCE6.0操作系统内(kernel)在代码中的表现形式是kernel.dll(也就是kern.dll)&#xff0c; WINCE5…

WINCE6.0体系结构学习

WINCE6.0的体系结构图如下图所示&#xff1a; 图1 WINCE的体系结构 根据上图可以把WINCE6.0体系结构分为硬件层、OEM层、操作系统层和应用层&#xff0c;这四层紧密合作&#xff0c;相互配合来完成从应用程序的调用到对硬件的操作和交互。 1. 硬件层 硬件平台的核心是嵌入…

【转】深度理解C# 的执行原理

转自&#xff1a;https://zhuanlan.zhihu.com/p/47177008 从编译原理说起虚拟机是什么C# 是什么&#xff0c;IL 又是什么.Net Framework vs MonoUnity3D 中的 C#小结作者&#xff1a;易立 | 腾讯IEG高级工程师为什么 Unity3D 可以运行 C#&#xff0c;C# 和 Mono 是什么关系&am…

Java程序员的推荐阅读书籍

作为Java程序员来说&#xff0c;最痛苦的事情莫过于可以选择的范围太广&#xff0c;可以读的书太多&#xff0c;往往容易无所适从。我想就我自己读过的技术书籍中挑选出来一些&#xff0c;按照学习的先后顺序&#xff0c;推荐给大家&#xff0c;特别是那些想不断提高自己技术水…

【转】Win10系统创建WiFi热点的两种方法

现在电脑和wifi已经成为很多人生活中不可缺少的一部分&#xff0c;上网过程只有连接WiFi才可以上网。使用windows10系统开启WiFi热点都是提示没有找到支持的无线网卡。不管你是驱动更新&#xff0c;重装&#xff0c;还是怎么操作都是不能用。为此&#xff0c;大家不妨参考下文方…

【转】Win10系统怎么设置无线做AP热点_win10设置无线为ap热点的步骤

转自&#xff1a;http://www.win7zhijia.cn/win10jc/win10_33126.html 在win10系统中&#xff0c;默认情况下无线网卡大部分都用于STA模式&#xff0c;但是有时候需要将无线网卡的工作模式为SoftAP&#xff0c;这样如果有双网卡的话&#xff0c;就能够将本机网络共享给其他PC或…

虚析构函数解析

C 指出&#xff1a;当一个派生类对象通过使用一个基类指针删除&#xff0c;而这个基类有一个非虚的析构函数&#xff0c;则结果是未定义的。运行时比较有代表性的后果是对象的派生部分不会被销毁。如果一个类要被另外一个类继承&#xff0c;而且用其指针指向其子类对象时&#…

【转】wifi的几种工作模式

转自&#xff1a;https://www.cnblogs.com/Ph-one/p/12455362.html https://www.cnblogs.com/jpzhu/p/11983992.html WIFI配置具体的模式主要有以下这几种&#xff1a;STA模式、AccessPoint模式、Monitor模式、Ad-hoc&#xff08;IBSS&#xff09;模式、WDS模式、Mesh模式。 …

【转】WIFI-Direct(Wifi直连)、AirPlay、DLAN、Miracast功能介绍

转自&#xff1a;https://www.cnblogs.com/yuanqiangfei/p/11674640.html 不知道大家对无线同屏技术有多少了解&#xff0c;当这种技术普及的时候&#xff0c;我想我们的工作与生活又会方便很多吧&#xff01;下面是目前三种主流同屏技术的介绍&#xff1a; 目前这种将终端信…

[轉]C# 中的委托和事件

轉自:http://www.cnblogs.com/jimmyzhang/archive/2007/09/23/903360.htmlpdf:http://www.tracefact.net/Document/Delegates-and-Events-in-CSharp.pdfC# 中的委托和事件 引言 委托 和 事件在 .Net Framework中的应用非常广泛&#xff0c;然而&#xff0c;较好地理解委托和事件…

【转】解决MeasureString 不准确的问题

转自&#xff1a;https://www.cnblogs.com/MRRAOBX/articles/7473803.html 我在将字符串(含中文)Draw到一幅图片上时发现不准这个问题的。 比如一幅图片的宽是400pixel,Graphics对象g的GraphicUnit是Pixel&#xff0c;我要画到图上的字符串是str,我用g.MeasureString(str.Sub…

专家观点:你必须了解的嵌入式Linux特性

如今&#xff0c;Linux正广泛应用于各种 嵌入式设备 的开发中&#xff0c;如数字电视、视讯转换盒、DVR播放器、xDSL/有线/PON调制解调器、家用路由器和 网络 网关。它尤其适合具有先进网络功能、大量设备驱动程序的数字家庭和家庭网络。除了嵌入式设备&#xff0c;Linux还支持…

【转】小谈PNG转SVG的方法 在线转换网站与illustrator

转自&#xff1a;https://www.aspirantzhang.com/network/png_to_svg.html 本文主要探讨JPG/PNG转SVG矢量格式并支持FILL的方法&#xff0c;介绍在线转换网站和通过illustator转换的经验。 应该说&#xff0c;国内网站很少用到SVG格式&#xff0c;在此之前我只是听过&#xf…

【转】最为详尽的WPF类继承关系*!

转自&#xff1a;最为详尽的WPF类继承关系 - 挑战 - 博客园