本文转自:    https://blog.csdn.net/Sayesan/article/details/78844189?utm_medium=distribute.pc_relevant_download.none-task-blog-baidujs-3.nonecase&depth_1-utm_source=distribute.pc_relevant_download.none-task-blog-baidujs-3.nonecase

环境:win7x64,VS2012,DCMTK3.6.0

DCMTK相关资料汇总:

※官方文档:http://support.dcmtk.org/docs-snapshot/

※源码、支持库下载:http://www.dcmtk.org/dcmtk.php.en

※官方论坛:http://forum.dcmtk.org/viewforum.php?f=23&sid=667fbeb1f819e12c32c46432ea1621c4

※wiki(DCMTK的说明书,各类教程):http://support.dcmtk.org/redmine/projects/dcmtk/wiki/Howto

编译方法参考柳北风儿的教程:点击打开链接

1、下载DCMTK源码和支持库

支持库是dcmtk需要引用的第三方库,包括tiff、png、xml、zlib、openssl库

其中,库文件以“_d.lib”结尾的是debug版本的库,以“_o.lib”结尾的是release版本的库

在编译dcmtk之前,需要先在PC上配置好这些库,方法如下:

(a)搜索“_d.lib”,得到7个结果,重命名把所有的“_d”删除,然后将这些文件拷贝到VS2012的安装目录下的"\VC\lib\"

(b)搜索“include”,得到5个结果,将这些文件夹复制到VS2012的安装目录下的"VC",合并文件夹

(c)将“openssl-1.0.0c\bin”下的5个文件复制到VS2012的安装目录下的"\VC\bin\"

下一步就是编译dcmtk源码

2、编译源码

首先用CMAKE生成项目文件,步骤如下:

(a)设置CMAKE属性。在“dcmtk-3.6.0”目录下找到“CMakeLists.txt”,并打开,把所有的“/MT”替换为“/MD”;查找“# DCMTK build options”,把“DCMTK_WITH_TIFF、DCMTK_WITH_PNG、DCMTK_WITH_XML、DCMTK_WITH_ZLIB、DCMTK_WITH_OPENSSL”这5项都设为“ON”,保存。也可以不修改CMake文件,在cmake时勾选相应选项。

(b)生成项目文件。新建文件夹,用于存放编译好的文件,CMAKE设置路径、目标平台,其他默认。对于tiff、png、xml、zlib、openssl库要设置其目录。

然后用VS2012编译,步骤如下:

(a)打开刚刚生成的解决方案,Build一次“ALL_BUILD”

(b)Build一次"INSTALL"

最后编译结果放在C:\Program Files (x86)\DCMTK,包括lib、include和bin

*编译报错

error LNK2026: 模块对于 SAFESEH 映像是不安全的。

解决方法:1.逐个打开解决方案下的每个项目的“属性页”对话框。
2.单击“链接器”文件夹,有的项目没有。
3.单击“命令行”属性页。
4.将 /SAFESEH:NO 键入“附加选项”框中,然后点击应用。

3、测试demo

借用了zssure的代码:点击打开链接

实现功能:对DCM图像进行JPEG压缩,最后保存为test_jpeg.dcm

项目属性配置:

1、包含目录:C:\Program Files (x86)\DCMTK\include,库目录:C:\Program Files (x86)\DCMTK\lib

2、“C/C++”->"代码生成"中的“运行库”设为“/MDd”

3、添加依赖项(视具体项目而不同):

netapi32.lib
wsock32.lib(注:这两个是windows自带的库,必须引用,否则编译报错,很郁闷官方并没有对此作出说明- -!)
ofstd.lib
oflog.lib
dcmimgle.lib
ijg8.lib
ijg12.lib
ijg16.lib
dcmdata.lib
dcmimage.lib
dcmjpeg.lib
dcmnet.lib
zlib.lib

具体的依赖关系在这里有所陈述:点击打开链接

  1. #include "stdafx.h"
  2. #include "dcmtk/config/osconfig.h"
  3. #include "dcmtk/dcmdata/dctk.h"
  4. #include "dcmtk/dcmdata/dcpxitem.h"
  5. #include "dcmtk/dcmjpeg/djdecode.h"
  6. #include "dcmtk/dcmjpeg/djencode.h"
  7. #include "dcmtk/dcmjpeg/djcodece.h"
  8. #include "dcmtk/dcmjpeg/djrplol.h"
  9. int _tmain(int argc, _TCHAR* argv[])
  10. {
  11. DJEncoderRegistration::registerCodecs(); // register JPEG codecs
  12. DcmFileFormat fileformat;
  13. if (fileformat.loadFile("D:\\Document_x64\\Documents\\Visual Studio 2012\\Projects\\resource\\1.dcm").good())
  14. {
  15. DcmDataset *dataset = fileformat.getDataset();
  16. DcmItem *metaInfo = fileformat.getMetaInfo();
  17. DJ_RPLossless params; // codec parameters, we use the defaults
  18. // this causes the lossless JPEG version of the dataset to be created
  19. dataset->chooseRepresentation(EXS_JPEGProcess14SV1TransferSyntax, &params);
  20. // check if everything went well
  21. if (dataset->canWriteXfer(EXS_JPEGProcess14SV1TransferSyntax))
  22. {
  23. // force the meta-header UIDs to be re-generated when storing the file
  24. // since the UIDs in the data set may have changed
  25. delete metaInfo->remove(DCM_MediaStorageSOPClassUID);
  26. delete metaInfo->remove(DCM_MediaStorageSOPInstanceUID);
  27. // store in lossless JPEG format
  28. fileformat.saveFile(".\\test_jpeg.dcm", EXS_JPEGProcess14SV1TransferSyntax);
  29. }
  30. }
  31. DJEncoderRegistration::cleanup(); // deregister JPEG codecs
  32. return 0;
  33. }

DCMTK相关资料汇总相关推荐

  1. 【camera】自动泊车-视觉车位检测相关资料汇总(论文、数据集、源代码、相关博客、演示demo)(1)

    [camera]自动泊车-视觉车位检测相关资料汇总(论文.数据集.源代码.相关博客.演示demo)parking slot detection 论文 2020论文 2019论文 2018论文 2017 ...

  2. 信奥中的数学 相关资料汇总(2022.07.08)

    信奥中的数学 数论篇 相关资料汇总(2022.07.07) 信奥中的数学 数论篇 相关资料汇总(2022.07.07)_dllglvzhenfeng的博客-CSDN博客 信奥中的数学 组合篇 相关资料 ...

  3. Streamsets相关资料汇总

    Streamsets相关资料汇总 1.Streamsets官网介绍 https://streamsets.com/ Github:https://github.com/search?utf8=%E2% ...

  4. 合宙模块LUA相关资料汇总

    1. 目录 1. 目录 [2. LUA二次开发](#2. LUA二次开发) 2.1 [新手教程](#2.1 新手教程) 2.2 [进阶教程](#2.2 进阶教程) 2.3 [LUA开发环境](#2.3 ...

  5. 智能运维相关资料汇总

    文章目录 0. 领域调研 1. AIops相关算法 1.1 故障预测 1.2 异常检测 1.3 根因分析 2. 开源博客,数据,代码,工具 2.1 清华NetMan实验室 2.2 华为 2.2 腾讯 ...

  6. 推荐收藏 | 算法工程师常见面试问题及相关资料汇总

    关注上方"视学算法",选择"星标公众号", 关键时间,第一时间送达! 编辑:数据派THU Github传送门: https://github.com/lcylm ...

  7. 数字医学影像工作站相关资料汇总

    引言: 计算机及信息技术的飞速发展,使医学诊断.治疗模式发生了巨大的改变,使医疗活动从过去经验主导模式逐渐向更加科学.精确的数字化模式转变.医学影像工作站的发展与应用就是其中的一个突出表现.它通过对医 ...

  8. (建议收藏)算法工程师常见面试问题及相关资料汇总

    目录 算法工程师 Github.牛客网.知乎.个人博客.微信公众号.其他 机器学习 面试问题.资料.代码实战 深度学习 面试.资料.代码实战Pytorch.代码实战TensorFlow.网课 C/C+ ...

  9. 算法工程师常见面试问题及相关资料汇总

    点击上方"AI派",选择"设为星标" 最新分享,第一时间送达! ☞[加薪必备]全套零基础学AI资料免费领! 目录 算法工程师 Github.牛客网.知乎.个人博 ...

  10. 信奥中的数学 数论篇 相关资料汇总(2022.07.07)

    数论入门书籍推荐 数论入门书籍推荐_dllglvzhenfeng的博客-CSDN博客_数论入门应该看什么书 数学女孩系列书籍 数学女孩系列书籍_dllglvzhenfeng的博客-CSDN博客 信息学 ...

最新文章

  1. 怎么删除Elasticsearch里的index内容
  2. redhat7配置本地源
  3. Python 常用系统模块整理
  4. 修改手机屏幕刷新率_手机屏幕没有高刷新率算不上旗舰机?看看网友都是如何回答的...
  5. ASP.NET 2.0中将 GridView 导出到 Excel 文件中
  6. 42-2017蓝桥杯b java
  7. C++11常用新特性
  8. Dempster-Shafer Evidence Theory
  9. 想提取嵌入视频文件的字幕流么?一条命令帮你解决|脚本工具系列
  10. 安装neo4j过程中存在的问题
  11. win7系统如何恢复或重装IE8浏览器呢?
  12. SpringBoot下载Excel文件,在Wps上可以打开但是Office上的excel打不开的问题
  13. APS生产计划排产与ERP生产计划差异对比
  14. 关于Palantir -第五部分:浏览器应用
  15. JS—— 常用图片后缀正则校验
  16. 建立matlab桌面遇到Error Staring Desktop
  17. 华为核心交换机HW_S7706添加静态路由
  18. 【简单远程控制】 Metasploit应用
  19. ffmpeg将mp4转为m4a,m4a转mp3,mp3转ogg
  20. PostGIS教程五:数据

热门文章

  1. hough直线检测c语言,基于hough变换的直线检测
  2. Python3+selenium+BaiduAI识别并下载花瓣网高颜值妹子图片
  3. 【不存在的人】用Python获取生成随机头像,还不侵权
  4. redis-live监控安装与测试
  5. 将视频设置为电脑动态桌面的方法
  6. 基于Android的员工工资管理系统
  7. C语言课程设计---职工工资管理系统
  8. 账龄分析表excel模板_这种高端表格模板你会做吗?Excel制作带照片的员工信息查询表...
  9. cocos-lua 获取鼠标点击位置
  10. app开发的三大技术框架