DICOM 文件可以大致分为两部分:
一部分:与 图像 相关 的 元 信息 ,包括患者信息,检查信息,序列信息,图像信息等等。
另一部分:图像的像素数据。
在解析DICOM文件中的像素数据的时候,我们先需要读取以下图像相关信息:
以下 是 某个CT影像中的图像信息示例:

(0028,0002)        Samples per Pixel               VR: US        Length: 2         Value: 1 
(0028,0004)        Photometric Interpretation  VR: CS        Length: 12         Value: MONOCHROME2
(0028,0010)        Rows                        VR: US        Length: 2         Value: 512 
(0028,0011)        Columns                     VR: US        Length: 2         Value: 512 
(0028,0030)        Pixel Spacing               VR: DS        Length: 22         Value: 0.48828125\0.48828125
(0028,0100)        Bits Allocated              VR: US        Length: 2         Value: 16 
(0028,0101)        Bits Stored                 VR: US        Length: 2         Value: 12 
(0028,0102)        High Bit                    VR: US        Length: 2         Value: 11 
(0028,0103)        Pixel Representation        VR: US        Length: 2         Value: 0 
(0028,1050)        Window Center               VR: DS        Length: 12         Value: 00100\00100
(0028,1051)        Window Width                VR: DS        Length: 12         Value: 00500\00500
(0028,1052)        Rescale Intercept           VR: DS        Length: 6         Value: -1000
(0028,1053)        Rescale Slope               VR: DS        Length: 2         Value: 1
(0028,2110)        Lossy Image Compression     VR: CS        Length: 2         Value: 01
(0028,2112)        Lossy Image Compression Ratio   VR: DS        Length: 8         Value: 6.228918

1.(0028,0002)        Samples per Pixel 
        每一个像素的取样数,一般来说,CT,MR,DR等灰度图像都是1,而彩超等彩**图像都是3,分别表示R, G, B三个颜色通道。

2.(0028,0004)        Photometric Interpretation
    我们经常碰到的Photometric Interpretation有以下几种类型:
        Monochrome2  一般的灰度图像都采用这种,Pixel值越大,图像就越白。
        Monochrome1 只有部分CR, DR图像使用,Pixel值越大,图像就越黑。
        Palette Colour 一般用于彩超图像,每个像素占用8位或者16位,调色板保存在[0028,1201]RedPaletteColorLookupTableData, [0028,1202]GreenPaletteColorLookupTableData, [0028,1203]BluePaletteColorLookupTableData的属性中。
        RGB  这是最常用的彩**图像格式。
        YBR_FULL  另外一种彩**图像格式, 存储格式为Y(Luminance 亮度), B(Blueness 蓝色), R(Redness, 红色)
        YBR_FULL_422 一般用于JPG有损压缩格式的彩**图像,每两个像素共同使用32位,每一个像素都有自己的Y(Luminance 亮度),但是共享相同的B(Blueness 蓝色), R(Redness, 红色)。所以,它的像素值存储方式是:YYBR,YYBT,YYBR
        YBR_RCT 用于JPEG 2000无损压缩彩**图*像,Reversible Color Transformation, 可逆色彩变换。
        Y = (R+2G+B)/4,  CB = B-G  , CR = R - G
        G = Y - (CR+CB)/4 ,  R = CR + G,  B = CB + G
        YBR_ICT 用于JPEG 2000有损压缩彩**图像 Irreversible Color Transformation, 不可逆色彩变换。
        Y = + .29900R + .58700G + .11400B
        CB = - .16875R - .33126G + .50000B
        CR = + .50000R - .41869G - .08131B

3.  (0028,0010)Rows 
    图像的高度

4.  (0028,0011)Columns
    图像的宽度

5.  (0028,0030)Pixel Spacing  
    图像像素间距,读取Pixel Data的时候不需要,主要用于长度测量。

6.  (0028,0100)Bits Allocated
    一个像素取样点存储时分配到的位数,一般RGB的图像,每一个颜色通道都使用8位,所以一般取值为8。对于灰度图像,如果是256级灰阶,一般就是8位。如果高于256级灰阶,一般就采用16位。

7. (0028,0101)Bits Stored          
        一个像素取样点存储时使用到的位数。比方说示例中CT影像,采用的是4K灰阶,像素值取值范围为0~4095,所以使用到的位数为12位。

8.  (0028,0102)High Bit 
    最高位序号,它定义了存储点在分配的内存中的排列方式,它的值是最后一个bit的序号。如果第一个bit放在0位,那么最后一个bit为Bits Stored -1。

9.  (0028,0103)Pixel Representation 
     如果这个值为0, 这表明是无符号类型,其VR类型应该为US,Unsigned Short. 如果这个值为1, 这表明为有符号类型,其VR类型应该为SS,Signed Short.

10.  (0028,1050)Window Center 和 (0028,1051)        Window Width
       窗宽窗位,不解释

11.  (0028,1052)Rescale Intercept 和 (0028,1053)Rescale Slope
      用于根据像素值计算原始值,比方说,CT可以用于计算HU值。
      比方说:HU = Rescale Slope * X + Rescale Intercept.

12.  (0028,2110)Lossy Image Compression
      当该值为1时,表明该图像曾经经过有损压缩处理。即使后来解压缩后,再用非压缩格式存储和传输,该值也需要保持为1.

13.   (0028,2112)Lossy Image Compression Ratio
      有损压缩压缩率。

对于 多 帧图像,我们还需要读取Number of Frames (0028,0008)来获取帧数,然后,逐帧读取Pixel Data。

对于彩*图像,我们还需要读取Planar configuration (0028,0006),它定义了各个彩色通道值在Pixel Data中排列的排列方式。
当此值为0的时候,它这样排列的RGBRGBRGBRGBRGB。
当此值为1的时候,它是这样排列的:RRRRR......GGGGG.......BBBBB。 对于多帧图像,它是这样排列的:第一帧的RRR..,第一帧的GGG...,第一帧的BBB...,第二帧的RRR..,第二帧的GGG...,第二帧的BBB...

【转】Dicom基础知识相关推荐

  1. 【DICOMDIR专题】DICOMDIR基础知识及常见问题汇总

    很多网友希望论坛能够出一些更专业.更细分的小专题,DICOMDIR就是目前需求量较大的专题之一.所以,结合网友所需,与几个关心此内容的朋友一起努力,做了一个小专题,希望对你有一些帮助-- DICOMD ...

  2. Dicom 基本知识-开篇

    阅读本文大概需要 6 分钟 read-2D Dicom简介 DICOM是Digital Imaging and Communications in Medicine的英文缩写,即医学数字成像和通信标准 ...

  3. 新手小白必须了解的数据相关基础知识(一)

    不管是做数据标注还是数据清洗.分析等等,大家是不是遇到过如下问题? 提示文件没有软件能打开. 用常用软件打开后乱码. 等等问题,特别是刚接触数据行业的小伙伴,有很多没有计算机背景知识,完全摸不到头脑到 ...

  4. 医院考试计算机基础知识,医院信息化计算机基础知识培训.ppt

    医院信息化计算机基础知识培训 五.医院信息系统常识与维护 1.医院信息系统 2.医学影像信息系统 3.实验室信息管理系统 4.电子病历 5.远程医疗 6.我院信息系统常见问题 五.医院信息系统常识与维 ...

  5. 嵌入式Linux的OTA更新,基础知识和实现

    嵌入式Linux的OTA更新,基础知识和实现 OTA updates for Embedded Linux, Fundamentals and implementation 更新的需要 一旦嵌入式Li ...

  6. 计算机基础知识第十讲,计算机文化基础(第十讲)学习笔记

    计算机文化基础(第十讲)学习笔记 采样和量化PictureElement Pixel(像素)(链接: 采样的实质就是要用多少点(这个点我们叫像素)来描述一张图像,比如,一幅420x570的图像,就表示 ...

  7. 嵌入式linux编程,嵌入式Linux学习笔记 - 嵌入式Linux基础知识和开发环境的构建_Linux编程_Linux公社-Linux系统门户网站...

    注:所有内容基于友善之臂Mini2440开发板 一.嵌入式Linux开发环境的构建 嵌入式开发一般分为三个步骤: 1.编译bootloader,烧到开发板 2.编译嵌入式Linux内核,烧到开发板 3 ...

  8. 《计算机网络应用基础》模拟试卷(六),《计算机与网络应用基础知识1》模拟试卷...

    <计算机与网络应用基础知识1>模拟试卷 (4页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 <计算机与网络应用基础知识1& ...

  9. python向量计算库教程_NumPy库入门教程:基础知识总结

    原标题:NumPy库入门教程:基础知识总结 视学算法 | 作者 知乎专栏 | 来源 numpy可以说是 Python运用于人工智能和科学计算的一个重要基础,近段时间恰好学习了numpy,pandas, ...

最新文章

  1. Android性能优化之渲染篇(一)
  2. 如何显示在线人数和所在位置
  3. HttpServlet中的service方法
  4. 深入理解JVM(一)编译openJDK
  5. python随机抽取人名_python实现艾宾浩斯背单词功能,实现自动提取单词、邮件发送,再也不用担心背单词啦...
  6. Centos7 minmal 安装
  7. 10.Springcloud的Zuul
  8. [转载]多维数组与Json格式的转化
  9. 宝塔面板 php关闭拓展,宝塔Linux面板中PHP如何安装扩展及禁用函数?
  10. Emacs + ecb使用(Emacs必须24.3以上版本)
  11. 自然语言处理——句子的相似度
  12. windows server 2008 r2 x64 enterprise service pack1中aspjpeg.dll安装
  13. Intel 8042键盘控制器详细介绍
  14. 大学物理实验习题+答案/缓慢更新
  15. 在内核中使用线程与skb队列发送数据
  16. js ajax 异步上传图片,javascript实现图片伪异步上传
  17. sort和sorted的区别
  18. 择校秘籍|保研去 北大软微 还是 中科院计算所?
  19. 微信小程序云函数使用教程【超详细】
  20. 2019西工大计算机类排名,西北工业大学2019年排名第31位 较2018年上升1名

热门文章

  1. 结构体的赋值和初始化与取出结构体变量中的成员
  2. thymeleaf 模板语言简介
  3. 一个(伪)MaterialDesign风格的博客园皮肤
  4. 【转载】MongoDB 1000W级数据 Insert和Query和Delete性能测试
  5. Some Notes About Design Pattern
  6. 请问 CType和DirectCast函数有何区别
  7. 基于知识图谱的问答系统实践
  8. [Leetcode][第461题][JAVA][汉明距离][位运算][Brian Kernighan]
  9. HDU-5050 java大数
  10. java面向对象程序设计董小园_java面向对象程序设计(董小园版).doc