1. 环境准备
- Visual Studio 2017
- 已编译的 dcmtk-3.6.5-win64-support_MD-msvc-11.0
关于DCMTK的编译方法,参见 DCMTK学习笔记1 win10 64bits上编译DCMTK3.6.3
2. 创建工程
- 在VS2017中新建Visual C++ 空项目,命名为ReadPET
- 确认配置管理为x64
- 配置工程
- 点击项目>>属性>>配置属性>>常规>>字符集 : 使用多字节字符集
- 配置属性>>调试>>环境 :添加编译好的DCMTK的bin目录路径
- 配置属性>>VC++目录>>包含目录:添加编译好的DCMTK的include目录路径
- 配置属性>>VC++目录>>库目录:添加编译好的DCMTK的lib目录路径
- 配置属性>>链接器>>输入>>附加依赖项:添加如下库
Iphlpapi.lib
ws2_32.lib
wsock32.lib
netapi32.lib
ofstd.lib
oflog.lib
dcmdata.lib
dcmdsig.lib
dcmnet.lib
dcmsr.lib
dcmimgle.lib
dcmqrdb.lib
dcmtls.lib
dcmwlm.lib
dcmpstat.lib
dcmjpls.lib
dcmjpeg.lib
dcmimage.lib
charls.lib
ijg8.lib
ijg12.lib
ijg16.lib
i2d.lib
编写案例代码:
//filename: main.cpp
#include "dcmtk\config\osconfig.h"
#include "dcmtk\dcmdata\dctk.h"
#include <iostream>
void main() {
DcmFileFormat *myFileFormat = new DcmFileFormat;
OFCondition cond = myFileFormat->loadFile("F:/Project/ct.13.dcm");
if (cond.good()) {
OFString patientName;
if (myFileFormat->getDataset()->findAndGetOFString(DCM_PatientName, patientName).good())
std::cout << "Patient Name: " << patientName << "\nTest successed.\n";
else std::cout << "No Patient Name Data!\n";
}
else std::cout << "Error occurs when opening file, check path or filename.\n";
system("pause");
}
按F5调试运行,控制台输出dicom图像中的患者姓名信息,如下图,说明案例运行成功。
可能会遇到提示缺少dll的错误,可将dcmtk安装目录下bin目录里的dll复制到工程目录下解决。