DICOM图像高级应用
文章平均质量分 81
实际应用中的产品功能,包括功能讲解和代码实现
DICOM医学影像
这个作者很懒,什么都没留下…
展开
-
26. DICOM图像显示-DCMTK-dcm转rle无损压缩
dcmdata模块包含以下命令行工具: cda2dcm:将CDA文件封装成DICOM文件格式 stl2dcm:将STL文件封装成DICOM文件格式 pdf2dcm:将PDF文件封装成DICOM文件格式 dcm2pdf:从 DICOM 封装的 PDF 中提取 PDF 文件 xml2dcm:将 XML 文档转换为 DICOM 文件或数据集 dcm2xml:将 DICOM 文件和数据集转换为 XML dcm2json:将 DICOM 文件和数据集转换为 JSON img2dcm:原创 2021-12-30 08:09:01 · 1227 阅读 · 0 评论 -
25. DICOM图像显示-DCMTK-修改dicom文件
dcmdata模块包含以下命令行工具: cda2dcm:将CDA文件封装成DICOM文件格式 stl2dcm:将STL文件封装成DICOM文件格式 pdf2dcm:将PDF文件封装成DICOM文件格式 dcm2pdf:从 DICOM 封装的 PDF 中提取 PDF 文件 xml2dcm:将 XML 文档转换为 DICOM 文件或数据集 dcm2xml:将 DICOM 文件和数据集转换为 XML dcm2json:将 DICOM 文件和数据集转换为 JSON img2dcm:原创 2021-12-29 19:30:48 · 1200 阅读 · 0 评论 -
24. DICOM图像显示-DCMTK-转换 DICOM 文件编码
dcmdata模块包含以下命令行工具: cda2dcm:将CDA文件封装成DICOM文件格式 stl2dcm:将STL文件封装成DICOM文件格式 pdf2dcm:将PDF文件封装成DICOM文件格式 dcm2pdf:从 DICOM 封装的 PDF 中提取 PDF 文件 xml2dcm:将 XML 文档转换为 DICOM 文件或数据集 dcm2xml:将 DICOM 文件和数据集转换为 XML dcm2json:将 DICOM 文件和数据集转换为 JSON img2dcm:原创 2021-12-29 08:09:08 · 1863 阅读 · 1 评论 -
23. DICOM图像显示-DCMTK-image转dicom
dcmdata模块包含以下命令行工具: cda2dcm:将CDA文件封装成DICOM文件格式 stl2dcm:将STL文件封装成DICOM文件格式 pdf2dcm:将PDF文件封装成DICOM文件格式 dcm2pdf:从 DICOM 封装的 PDF 中提取 PDF 文件 xml2dcm:将 XML 文档转换为 DICOM 文件或数据集 dcm2xml:将 DICOM 文件和数据集转换为 XML dcm2json:将 DICOM 文件和数据集转换为 JSON img2dcm:原创 2021-12-28 09:33:12 · 1697 阅读 · 0 评论 -
16. DICOM图像显示-DCMTK-cda转dicom
dcmdata模块包含以下命令行工具: cda2dcm:将CDA文件封装成DICOM文件格式 stl2dcm:将STL文件封装成DICOM文件格式 pdf2dcm:将PDF文件封装成DICOM文件格式 dcm2pdf:从 DICOM 封装的 PDF 中提取 PDF 文件 dcm2json:将 DICOM 文件和数据集转换为 JSON dcm2xml:将 DICOM 文件和数据集转换为 XML dcmconv: 转换 DICOM 文件编码 dcmodify:修改DICOM文件原创 2021-12-26 18:58:50 · 378 阅读 · 0 评论 -
17. DICOM图像显示-DCMTK-stl转dicom
dcmdata模块包含以下命令行工具: cda2dcm:将CDA文件封装成DICOM文件格式 stl2dcm:将STL文件封装成DICOM文件格式 pdf2dcm:将PDF文件封装成DICOM文件格式 dcm2pdf:从 DICOM 封装的 PDF 中提取 PDF 文件dcm2json:将 DICOM 文件和数据集转换为 JSON dcm2xml:将 DICOM 文件和数据集转换为 XMLdcmconv: 转换 DICOM 文件编码 dcmodify:修改DICOM文件dcmc原创 2021-12-26 18:27:27 · 2299 阅读 · 1 评论 -
21. DICOM图像显示-DCMTK-xml转dicom
dcmdata模块包含以下命令行工具: cda2dcm:将CDA文件封装成DICOM文件格式 dcm2json:将 DICOM 文件和数据集转换为 JSON dcm2pdf:从 DICOM 封装的 PDF 中提取 PDF 文件 dcm2xml:将 DICOM 文件和数据集转换为 XML dcmconv: 转换 DICOM 文件编码 dcmcrle:将 DICOM 文件编码为 RLE 传输语法 dcmdrle:解码 RLE 压缩的 DICOM 文件 dcmdump:转储 DIC原创 2021-12-26 17:19:31 · 414 阅读 · 0 评论 -
20. DICOM图像显示-DCMTK-dicom转xml
dcmdata模块包含以下命令行工具: cda2dcm:将CDA文件封装成DICOM文件格式 dcm2json:将 DICOM 文件和数据集转换为 JSON dcm2pdf:从 DICOM 封装的 PDF 中提取 PDF 文件 dcm2xml:将 DICOM 文件和数据集转换为 XML dcmconv: 转换 DICOM 文件编码 dcmcrle:将 DICOM 文件编码为 RLE 传输语法 dcmdrle:解码 RLE 压缩的 DICOM 文件 dcmdump:转储 DIC原创 2021-12-26 16:38:48 · 775 阅读 · 0 评论 -
19. DICOM图像显示-DCMTK-dicom转pdf
dcmdata模块包含以下命令行工具: cda2dcm:将CDA文件封装成DICOM文件格式 dcm2json:将 DICOM 文件和数据集转换为 JSON dcm2pdf:从 DICOM 封装的 PDF 中提取 PDF 文件 dcm2xml:将 DICOM 文件和数据集转换为 XML dcmconv: 转换 DICOM 文件编码 dcmcrle:将 DICOM 文件编码为 RLE 传输语法 dcmdrle:解码 RLE 压缩的 DICOM 文件 dcmdump:转储 DIC原创 2021-12-26 15:52:31 · 865 阅读 · 0 评论 -
18. DICOM图像显示-DCMTK-pdf转dicom
一. DICOM协议 dicom协议中用Encapsulated PDF IOD表示PDF文件 Encapsulated PDF IOD包含的IE和Module 其中和pdf相关的主要是Encapsulated Document Module中的Encapsulated Document(0042,0011)元素二. 例子使用dcmtk的pdf2dcm工具,实现将pdf文件转成dcm文件。1. 使用:pdf2dcm [选项] pdffile-in dcmfile-outpdffil原创 2021-12-26 15:20:53 · 919 阅读 · 0 评论 -
15. DICOM图像显示-DCMTK-获取坐标点像素值
本篇文章实现radiant获取某一点的像素值。dicom图像原点为图像左上点,x轴正方向为行方向,y轴正方向为列方向。因此随着鼠标移动,可以显示某一点的坐标点。获取CT图像的CT值int width = dicomImg->getWidth();//InterDataSint16 *data = (Sint16 *)(dicomImg->getInterData()->getData());//获得坐标点(261, 23)的CT值,49Sint16 value = dat原创 2021-12-25 15:43:39 · 2713 阅读 · 0 评论 -
14. DICOM图像显示-DCMTK-处理超声彩色图像
本篇文章实现radiant对彩色图像显示和窗宽窗位调整。 前面的文章对DICOM图像的操作都是基于dcmimgle模块的DcmImage类实现的。dcmtk官方说明: 模块dcmimgle包含访问和渲染 DICOM 单色图像的类。 模块dcmimage提供对彩色图像的支持。 模块dcmjpeg提供了对 JPEG 压缩图像的支持。即, dcmimgle只支持MONOCHROME1和MONOCHROME2单色图像 dcmimage只支持彩色图像要支持彩色图像,需要以下操作引原创 2021-12-25 11:24:13 · 3987 阅读 · 0 评论 -
13. DICOM图像显示-DCMTK-处理多帧图像
本篇文章介绍如何基于dcmtk实现Radiant软件多帧图像显示和动态播放。 一般US和DSA图像较常见多帧图像应用层代码//为节省内存,通过fcount设置多帧图像一次处理的帧数量dicomImg = new DicomImage(dcmParse->GetDataSet(), EXS_LittleEndianExplicit, CIF_UsePartialAccessToPixelData, 0, 10);//获得一次处理的帧数量,10int frames = dicomImg原创 2021-12-24 07:06:55 · 2060 阅读 · 3 评论 -
12. DICOM图像显示-DCMTK-dcm转图片jpeg、bmp、png
本篇文章介绍如何基于dcmtk实现Radiant软件保存不同格式图像。Radiant功能利用DCMTK的接口即可实现图片的导出:DicomImage::writeRawPPM : DICOM文件 ==> PPM图片DicomImage::writePPM : DICOM文件 ==> PPM图片DicomImage::writeBMP : DICOM文件 ==> BMP图片DicomImage::writePluginFormat + DiJPEGPlugin : DICOM文原创 2021-12-23 09:21:56 · 2096 阅读 · 0 评论 -
11. DICOM图像显示-DCMTK-overlay覆盖层处理和源码分析
本篇文章介绍如何基于dcmtk实现Radiant软件图像overlay操作。dicom协议的overlay原理部分见文章1.9 DICOM带有overlay覆盖层图像显示(一层覆盖层)Radiant有如下overlay操作:隐藏和显示overlay数据样例图像一. 实现Radiant相同功能上图所示的DICOM图像有两层overlay,PixelData全为0。图像中显示的全是overlay数据。显示overlay数据dcmtk默认显示图像自带的overlay数据,将overlay数原创 2021-12-20 08:24:36 · 1106 阅读 · 0 评论 -
10. DICOM图像显示-DCMTK-旋转翻转和源码分析
本篇文章介绍如何基于dcmtk实现Radiant软件图像旋转和翻转操作。Radiant图像旋转和翻转有如下操作: Rotate 90°CCW是逆时针旋转90° Rotate 90°CW是顺时针旋转90° Rotate 180°是逆时针或顺时针旋转180° Flip horizontal是水平翻转 Flipvertical是垂直翻转图像旋转和翻转有两种方法实现:显示控件 图像旋转和翻转操作可以借助显示控件提供的功能实现。这种方式是依靠改变最终的灰度值图像的像原创 2021-12-15 09:35:24 · 4251 阅读 · 0 评论 -
9. DICOM图像显示-DCMTK-窗宽窗位调整和源码分析
radiant的窗宽窗位操作有如下几种,Default window是dicom文件中默认的窗宽窗位Full dynamic是根据dicom文件中的最大CT值和最小CT值计算的窗宽窗位Negative是反片,即CT值越小,越亮CT Adbomen等条目根据不同设备类型,显示不同。CT图像则显示预设的各个器官的标准窗宽窗位,比如腹部CT,wl=60,ww=400,能更好的显示腹部组织。核磁相关超声相关...原创 2021-12-10 09:29:01 · 3015 阅读 · 0 评论 -
8. DICOM图像显示-DCMTK-图像显示和源码分析
上篇文章讲了dcmtk的dcmimgle模块的DicomImage类的像素数据的多个处理过程,最终通过DicomImage类的getOutputData()获取P values值,即最终显示的灰度值。 DicomImage类封装了丰富了的图像处理方法,是dcmtk推荐使用的图像处理外部接口类。获取灰度值 DicomImage提供了两个方法获取灰度值 bits是每个采样点的位数,灰度值是8bit frame是要获取的帧数,多帧图像可以选择具体第几帧的图像灰度值,单帧图像只能使用默认值原创 2021-12-09 09:39:00 · 3967 阅读 · 1 评论 -
7. DICOM图像显示-DCMTK-像素数据的三次转换和源码分析
要显示DICOM格式的医学图像必须将原始图像数据经过一系列的转换才能得到可直接在显示设备上显示的数据(称之为P Values)。DICOM医学图像显示需要经过Modality LUT、VOI LUT、Presentation LUT三个转换过程,最终输出的P Values才是可以直接显示的图像数据。![在这里插入图片描述](https://img-blog.csdnimg.cn/f7b522e0dcf941c88eb15ad3f110902c.png)1. Modality LUT 通常不同生产厂原创 2021-12-06 07:34:04 · 3974 阅读 · 0 评论 -
6. DICOM图像显示-DCMTK-像素数据获取的三种方式和源码分析
本篇文章对应的DICOM原理部分,在专栏从零讲解DICOM协议-成像协议的文章DICOM图像CT值计算和DICOM图像CT值转RGB,建议先了解原理,有助于理清代码思路。要显示DICOM图像,首先要正确获取像素数据,DCMTK有三种方式获取像素数据:dcmdata模块的getUint8Array方法dcmimgle模块的getInterData方法dcmimgle模块的getOutputData方法原理部分讲过,要将12位灰阶的CT值转换为普通显示器能显示的8位灰阶的灰度值,要进行如下几步:原创 2021-11-25 09:36:52 · 4890 阅读 · 0 评论 -
20. DICOM图像层级分类-DCMTK-层级分类
本篇文章对应的DICOM原理部分,在专栏从零讲解DICOM协议-成像协议的文章DICOM层级关系,建议先了解原理,有助于理清代码思路。DICOM有四个从上到下层级关系,分别是Patient(病人),Study(检查),Series(序列),Sop(图像)。 Patient可以有多个Study,Study可以有多个Series,Series可以有多个Sop。实际的意义为一个人可以做多次检查,一个检查的图像按照层厚、窗宽窗位、动静脉期等不同可以有不同的序列,一个序列需要多张图像才能完整显示扫描的器官。根原创 2021-11-22 10:23:21 · 3880 阅读 · 0 评论 -
5. DICOM图像层级分类-DCMTK-压缩图像PixelData读取
上篇文章讲解了dcmtk读取元素方式,但有局限性,只满足如下情况:除PixelData外的元素非压缩的PixelData如果dicom图像是压缩格式,则string pixelData = dcmParse.GetElementValue(DCM_PixelData);会报错,需要先将PixelData解压再读取。dcmtk提供两种开源解压模块,每种模块均支持无损压缩和有损压缩。dcmjpeg是jpeg压缩格式的图像编解码器,dcmjpls是jpeg-ls压缩格式的图像编解码器。DJDe原创 2021-11-21 18:07:39 · 2445 阅读 · 0 评论 -
4. DICOM图像层级分类-DCMTK-元素读取
dcmtk的模块如下图所示,其中基础模块是dcmdata,其他的大部分模块依赖dcmdata。dcmtk官网 dcmdata主要功能为解析dicom图像,对dicom图像进行编码和解码。主要的几个类为 要对检查图像进行按序列顺序分类,首先需要读取DICOM图像中的相应元素。dcmtk将dicom文件的元数据组和数据组使用不同的对象存储。 DcmMetaInfo对象存储元数据组,DcmDataset对象存储数据组。文件解析类的头文件:class _declspec(dllexport)原创 2021-11-21 15:01:28 · 2359 阅读 · 0 评论 -
3. DICOM图像层级分类-DCMTK-数据字典避坑
DICOM有4000多个元素,这些元素组成了DICOM数据字典。DCMTK需要用到数据字典来解析DICOM文件。 cmake编译后生成vs工程,vs工程编译后生成的目录中有dicom.dic文件,就是dcmtk的数据字典。其内容按照DcmElement格式存储在windows和linux上dcmtk加载数据字典方式不同。dcmtk官方说明datadict.txt默认,windows上使用内置字典,linux上使用外部字典。可通过cmake配置改变加载方式windows的cmake原创 2021-11-21 10:58:41 · 1501 阅读 · 0 评论 -
2. DICOM图像层级分类-DCMTK-工程搭建
DCMTK的编译过程请参考DCMTK3.6.3编译,安装[Windos10平台+VS2017+Cmake3.11]环境为win10 + dcmtk3.6.3 + vs2017本篇文章的基础理论部分见专栏从零讲解DICOM协议-成像协议的文章DICOM层级关系和序列图像排序vs2017新建c++项目修改解决方案为64位平台,解决方案上鼠标右键->属性确认修改成功,项目Classify上鼠标右键->属性配置管理器选择X64此时编译解决方案,解决方案文件夹中生成x64文件夹将原创 2021-11-20 19:55:35 · 751 阅读 · 0 评论 -
1. DICOM高级应用专栏介绍
专栏从零讲解DICOM协议-成像协议讲解了DICOM成像协议原理。专栏从零编程实现DICOM协议-代码实现讲解了DICOM成像协议的代码实现。 本专栏在上面文章的基础上,讲解DICOM图像的高级应用和代码实现,即实际产品开发过程中的一些要点、问题和解决方法。 基于单张DICOM图像从图像解析到图像显示,只是图像应用的基本功能。医生往往需要查看整个检查Study的图像去分析,并且需要对单张DICOM图像进行放大,调窗,测量等操作去更进一步观察图像。 一些高级应用中会对序列图像进行一些后处理,比如原创 2021-11-20 11:25:05 · 520 阅读 · 0 评论