`
qimo601
  • 浏览: 3445881 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

DCMTK读取DICOM文件,获取数据集、建立DicomDIr

阅读更多

 

Examples

The following example shows how to load a DICOM file and output the patient's name:

 

DcmFileFormat fileformat;
OFCondition status = fileformat.loadFile("test.dcm");
if (status.good())
{
  OFString patientName;
  if (fileformat.getDataset()->findAndGetOFString(DCM_PatientName, patientName).good())
  {
    cout << "Patient's Name: " << patientName << endl;
  } else
    cerr << "Error: cannot access Patient's Name!" << endl;
} else
  cerr << "Error: cannot read DICOM file (" << status.text() << ")" << endl;

 The following example shows how to create a DICOM dataset and save it to a file:

 

char uid[100];
DcmFileFormat fileformat;
DcmDataset *dataset = fileformat.getDataset();
dataset->putAndInsertString(DCM_SOPClassUID, UID_SecondaryCaptureImageStorage);
dataset->putAndInsertString(DCM_SOPInstanceUID, dcmGenerateUniqueIdentifier(uid, SITE_INSTANCE_UID_ROOT));
dataset->putAndInsertString(DCM_PatientName, "Doe^John");
/* ... */
dataset->putAndInsertUint8Array(DCM_PixelData, pixelData, pixelLength);
OFCondition status = fileformat.saveFile("test.dcm", EXS_LittleEndianExplicit);
if (status.bad())
  cerr << "Error: cannot write DICOM file (" << status.text() << ")" << endl;

 The following example shows how to create a general purpose DICOMDIR from multiple files:

 

DicomDirInterface dicomdir;
OFCondition status = dicomdir.createNewDicomDir();
if (status.good())
{
  while ( /* there are files */ )
    dicomdir.addDicomFile( /* current filename */ );
  status = dicomdir.writeDicomDir();
  if (status.bad())
    cerr << "Error: cannot write DICOMDIR (" << status.text() << ")" << endl;
} else
  cerr << "Error: cannot create DICOMDIR (" << status.text() << ")" << endl;
 

 

------------------------------------------------------------------

柳北风儿

http://qimo601.iteye.com

转载:http://support.dcmtk.org/docs/mod_dcmdata.html

分享到:
评论

相关推荐

    基于DCMTK的DICOM图像查看器

    2. **DCMTK API**:掌握DCMTK提供的类和函数,如DcmDataset用于处理数据集,DcmFileFormat用于读写文件,DcmItem用于操作数据元素等。 3. **图像解码**:DICOM图像可能是压缩的,需要使用DCMTK的解码函数将原始数据...

    第一个 DCMTK 程序:显示 DICOM 图像(DCMTK 3.6.4 + Qt 5.14.2 + VS2015)源码

    这是博文《第一个 DCMTK 程序:显示 DICOM 图像(DCMTK 3.6.4 + Qt 5.14.2 + VS2015)》的源码,详细内容见博客文章 https://blog.csdn.net/blackwoodcliff/article/details/109481195

    基于DCMTK的DICOM医学图像显示及其调窗方法研究

    DICOM医学图像文件通常具有.dcm的后缀,分为文件头和数据集两部分。文件头中包含保留部分和元信息,其中保留部分通常全为0x00,而元信息则包括传输语法、病人信息、图像尺寸、图像位深度等关键数据。数据集部分包含...

    VC和DCMTK显示DICOM图像

    下面提供一段简单的示例代码,展示如何使用DCMTK读取DICOM文件并显示图像: ```cpp #include "dcmtk/config/osconfig.h" /* for OS specific code */ #include "dcmtk/dcmimgle/dcmimage.h" /* for DcmImage class ...

    用VC++和DCMTK显示DICOM医学图像_solidtdl_Vc_dcmtk_源码.rar.rar

    1. **DICOM解析**:利用DCMTK的`dcmdata`模块读取DICOM文件中的元数据,如患者信息、图像大小、像素数据等。 2. **图像解码**:DCMTK的`dcmimage`模块可以处理图像编码,将原始的像素数据解码为可显示的RGB或灰度...

    dicom.rar_dcmtk_dcmtk3.6_dcmtk3.6.0_dicom

    3. **命令行工具**:DCMTK提供了一系列的命令行工具,如dcmdump用于查看DICOM文件内容,dcmsend用于发送DICOM数据,dcmscp作为DICOM接收器,以及dcmmkdir用于创建DICOM目录结构等。 4. **API接口**:DCMTK提供了C++...

    C++,dcmtk,gdcm实现dicom图像解压缩,信息读取,支持jpeg,jpeg2000,jpeg-l

    然后,使用DCMTK或GDCM提供的API读取DICOM文件,获取图像元数据,如像素数据、病人信息、设备信息等。接着,通过库提供的解压缩函数,对像素数据进行解码。对于JPEG和JPEG2000,它们的解压缩过程涉及到逆变换;而...

    多帧DICOM文件

    多帧的DICOM文件,是学习DICOM解析必备文件

    DCMTK工具下载,实现dicom传输文件等功能

    2. **数据解析**:读取和分析DICOM文件,提取其中的图像信息和患者数据。 3. **数据生成**:根据用户需求创建新的DICOM文件,如生成结构化报告。 4. **网络通信**:通过DICOM网络服务类(DIMSE)与医疗设备进行数据...

    DICOM文件信息修改程序

    在这个“DICOM文件信息修改程序”中,我们聚焦于如何使用DCMTK这一开源工具来操作DICOM文件的元数据。 DCMTK(DICOM Toolkit)是德国工业大学的一个项目,提供了一系列C++库和命令行工具,用于处理DICOM数据。它...

    用VC++和DCMTK显示DICOM医学图像

    - **加载DICOM文件**:通过DCMTK提供的函数读取DICOM文件,并解析文件头及数据集合。 - **提取像素数据**:从DICOM数据集中提取像素数据。 - **显示图像**:利用VC++的图形界面功能显示像素数据,形成可视化的医学...

    读取DICOM文件(c编写).rar.rar

    - 获取数据集:解析文件后,可以通过`DcmFileFormat::getDataset()`获取到包含所有数据元素的数据集。 - 遍历数据集:使用`DcmStack`和`DcmElement::nextElement()`遍历所有元素,读取每个元素的标签、长度和值。 ...

    读取DICOM文件(c编写)

    1. **解析DICOM头文件**:首先,你需要读取并解析DICOM文件的头部,头部包含了文件的基本信息和数据元素的位置。你可以使用`fread`函数从文件中读取固定大小的块,然后解码标签和VR。 2. **理解VR**:根据VR的不同...

    VC实现DICOM文件打开

    2. **解析Header**:通过访问DcmFileFormat的getDataset()方法,你可以获取到DICOM数据集(DcmDataset),这是Header的接口。你可以遍历数据集,获取各种元信息,如患者姓名、图像类型、系列描述等。 3. **提取图像...

    VC 与DCMTK显示DICOM医学图像pdf教程.rar

    VC 使用DCMTK显示DICOM医学图像的实现教程, 从事VC 编程的程序员大概都知道,DICOM是医学影像存储和传输的国际标准,本教程来自OTI技术论坛专题讨论版,或许这本整理的简短教程对你有所帮助。

    dcmtk.rar_dcmtk_dicom

    1. **dcmdata**:这是DCMTK的基础模块,负责处理DICOM数据元素和数据集。它包含了解析、验证和创建DICOM数据结构的类,以及用于读写DICOM文件的低级接口。 2. **dcmsr**:此模块专门用于处理DICOM的结构化报告...

    基于DCMTK的DICOM相关程序编写攻略

    基于DCMTK的DICOM相关程序编写攻略

    新建文件夹.zip_dicom文件_读取DICOM文件

    1. **打开文件**:使用 DICOM 库(如 pydicom、gdcm、DCMTK 等)读取 DICOM 文件,解析文件头信息。 2. **解析元数据**:从文件头中提取所需的信息,如患者姓名、检查日期、设备型号、图像尺寸、像素间距等。 3. **...

Global site tag (gtag.js) - Google Analytics