DCMTK 目录结构

DCMTK 目录结构

经过编译后的DCMTK包含许多文件,在使用的时候我们需要将这些文件包含到对应的项目中,源码编译得到的文件如下:

请添加图片描述

如果你还没有成功编译,可以参考

dcmtk编译失败后的解决思路(附带编译后文件下载)_曦泽周的博客-CSDN博客

也可以直接使用visual studio2017编译完成的包

dcmtk-debug: 使用visual studio2017 对dcmtk-3.6.7进行编译后得到的类库文件,可以直接使用 (gitee.com)

本文主要介绍经过编译后的文件结构。

dcmtk包含六个文件夹,分别为bin, cmake, etc, include, lib, share,项目的网站参考

OFFIS DCMTK and DICOM Projects

1. bin

bin文件为DCMTK项目的输出文件,其中包含了经过生成得到的所有应用程序工具以及所依赖的动态链接库。

每个.exe文件都是一个工具,我们可以使用cmd命令行使用这些工具,命令行的指令可以在网站DCMTK: Main Page中找到,以下为几个常用的应用程序。

dcmodify: dcmodify 是一种工具,允许修改、插入和删除 DICOM 文件中的标签和项目。
dcm2json:实用程序将 DICOM 文件的内容(文件格式或原始数据集)转换为 JSON。
dcm2xml:实用程序将 DICOM 文件(文件格式或原始数据集)的内容转换为 XML。
img2dcm:工具用作从 JPEG 或 BMP 等标准图像格式到 DICOM 的转换工具。
dcmqrscp:一个简易的PACS,可以作为中央测试节点测试传输
echoscu\findscu\getscu\movescu\storescu:dicom传输协议对应的客户端

除了.exe文件,bin中还包含了dcmtk的环境,在使用C++搭建自己的项目实现上述程序功能的时候需要包含这些动态链接库。

2. cmake

用来使用cmake的功能文件。

3. etc

包含使用工具所需要使用的配置文件,需要在对应配置文件里修改IP、端口等信息才能实现dicom数据的传输与验证。

4. include

include文件夹中包含了dcmtk的所有头文件,通过将头文件添加至项目的include文件路径就可以实现对dcmtk数据结构的操作。

dcmtk 包含了若干个子包,对应有22个include文件夹,分别为:

  • config: DCMTK编译配置模块
  • ofstd:通用库,包括字符串类等。
  • oflog:基于 log4cplus 的日志库
  • dcmdata:用于读取、修改和写入 DICOM 数据结构的模块
  • dcmimgle:用于处理 DICOM 图像(灰度)的模块
  • dcmimage:用于处理DICOM图像(彩色)的模块
  • dcmnet:DICOM 网络协议模块
  • dcmqrdb:提供简单测试 PACS 的模块
  • dcmsr:实现 DICOM 结构化报告 (SR) 的模块
  • dcmwlm:实现 DICOM 工作列表服务器的模块
  • dcmjpeg:实现 DICOM JPEG 编解码器的模块
  • dcmjpls:实现 DICOM JPEG-LS 编解码器的模块
  • dcmpstat:实现 DICOM 表示状态的模块
  • dcmsign:实现 DICOM 签名等的模块。
  • dcmtls:为 DICOM 实现安全网络的模块
  • docs:包含一些关于 DCMTK 的一般文档的模块
  • doxygen:使用 doxygen 生成 API 文档的模块

各个模块之间的依赖关系如下

请添加图片描述

5. lib

lib文件夹存放有所有动态连接库静态加载所需lib文件,每一个模块对应一个lib,需要在project的附加依赖项中添加对应的lib文件名。

6. share

share文件夹中存放有与dcmtk相关的介绍文档,但都是英文的,需要啃一下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/198242.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cloudflare Tunnel完整

下载和安装 curl -L ‘https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64’ -o ./cloudflared-linux-amd64 280 chmod x ./cloudflared-linux-amd64 281 ./cloudflared-linux-amd64 282 mv cloudflared-linux-amd64 cloudflared …

【生物医学信号处理及其MATLAB应用】Chapter 1 生物医学信号概述

Chapter 1 生物医学信号概述 第一章 生物医学信号概述一、信号二、生物医学信号三、生物医学信号处理的内容三、处理生物医学信号的目的 第一章 生物医学信号概述 一、信号 ​ 信号:携带信息的物理量 ​ 来自于真实世界的信号各不相同,但大致可分为四…

【Linux】编译器-gcc/g++与调试器-gdb的使用

👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》 🌝每一个不曾起舞的日子,都是对生命的辜负 目录 前言 1.gcc/g语法 2.gcc的使用及…

Linux设备与STM32 USB串口通讯

保证STM32 USB串口虚拟成功。 lsusb 如果STM32单片机通过USB连接到计算机,你应该能够在输出中看到类似以下的行: Bus XXX Device YYY: ID 0483:5740 STMicroelectronics 查看USB更多信息 sudo dmesg | grep tty 增加了下面类似信息: c…

tomcat容器是如何创建servlet类实例?用到了什么原理?

Tomcat容器创建Servlet类实例的过程主要涉及到以下几个步骤: 加载类:Tomcat容器首先需要加载你的Servlet类。这通常通过在web.xml文件中配置Servlet的class属性来完成。实例化:一旦Servlet类被加载,Tomcat容器就会创建一个该类的…

【教程】苹果推送证书的创建和使用流程详解

​ 摘要 本篇博客主要介绍了苹果推送证书的使用流程。首先,在苹果开发者中心创建推送证书,然后在应用程序中使用该证书进行消息推送。文章详细说明了创建推送证书的步骤,并提供了在应用程序中注册推送服务、发送推送消息以及处理推送消息的相…

Databend 开源周报第 122 期

Databend 是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展,遇到更贴近你心意的 Databend 。 支持链式函数调…

PWN学习之LLVM入门

一、基本流程 ①找到runOnFunction函数时如何重写的,一般来说runOnFunction都会在函数表最下面,找PASS注册的名称,一般会在README文件中给出,若是没有给出,可通过对__cxa_atexit函数"交叉引用"来定位: ②通…

GEE:Sobel算子卷积和Roberts算子卷积对比

作者:CSDN @ _养乐多_ 本文介绍了Sobel算子卷积和Roberts算子卷积操作的代码,并进行了图像对比,可以观察到两个算子的细微差异。 文章目录 一、Sobel算子和Roberts算子对比二、完整代码三、代码链接一、Sobel算子和Roberts算子对比 详细介绍介绍参考《遥感数字图像处理教程…

uniapp搭建内网映射测试https域名

搭建Https域名服务器 使用github的frp搭建,使用宝塔申请免费https证书,需要先关闭宝塔nginx的反向代理,申请完域名后再开启反向代理即可。 教程 新版frp搭建教程 启动命令 服务器端 sudo systemctl start frps本地 cd D:\软件安装包\f…

MySQL笔记-第03章_基本的SELECT语句

视频链接:【MySQL数据库入门到大牛,mysql安装到优化,百科全书级,全网天花板】 文章目录 第03章_基本的SELECT语句1. SQL概述1.1 SQL背景知识1.2 SQL语言排行榜1.3 SQL 分类 2. SQL语言的规则与规范2.1 基本规则2.2 SQL大小写规范 …

连接MySQL提示“Public Key Retrieval is not allowed“问题解决方式

解决方法 有多种方法可用于解决此问题(请选择最适合您的一种) 在 MySQL 中启用并正确实施 SSL创建一个数据库用户并将其配置为使用 mysql_native_password 身份验证插件。将以下参数添加到 JDBC URL:useSSLfalse&allowPublicKeyRetrieva…

算法-02-排序-冒泡插入选择排序

一般最经典的、最常用的:冒泡排序、插入排序、选择排序、归并排序、快速排序、计数排序、基数排序、桶排序。那么我们如何分析一个"排序算法"呢? 1-分析排序算法要点 时间复杂度:具体是指最好情况、最坏情况、平均情况下的时间复杂…

算法-滑动窗口

一、滑动窗口思想 概念 在数组双指针里,我们介绍过 "对撞型" 和 "快慢型" 两种方式,而滑动窗口思想就是快慢型的特例。 实际使用 计算机网络中有滑动窗口协议(Sliding Window Protocol),该协议…

10、pytest通过assert进行断言

官方实例 # content of test_assert1.pydef f():return 3def test_function():assert f() 4def test_assert_desc():a f()# assert a % 2 0assert a % 2 0, "value was odd, should be even"解读与实操 pytest允许你使用标准python断言来验证测试中的期望和值&…

NodeJS(二):npm包管理工具、yarn、npx、pnpm工具等

目录 (一)npm包管理工具 1.了解npm 2.npm的配置文件 常见的配置属性 scripts属性*** 依赖的版本管理 3.npm安装包的细节 4.package-lock文件 5.npm install原理** 6.npm的其他命令 (二) 其他包管理工具 1.yarn工具 基本指令 2.cnpm工具 3.npx工具 (1)执行本地…

SAP中的新旧事务码

SAP中的新旧事务码 SAP随着新版本的发布,我们知道sap已经更新了很多的程序和TCODE。sap提供了很多新的TCODE来替换旧的TCODE,新TCODE有很多的新特性和新功能。在这个这种情况下,很多旧TCODE就会被废弃。我们如何查找这个替换呢? …

state_dict使用详解

在PyTorch中,state_dict是一个非常重要的概念,它是一个包含模型参数的字典对象。每个模型的state_dict都包含了该模型的所有参数(权重和偏置等),用于在训练和推理过程中重现模型的内部状态. pytorch 中的 state_dict 是…

NetApp E5700 广泛应用于企业级 SAN 应用程序环境,例如大数据分析、技术计算、视频监控以及备份和恢复

主要优势 1、极致性能 • 利用最适合现代企业级应用(例如,大数据分析、技术计算、视频监控以及备份和恢复)的混合系统提高性能、IOPS 和密度。 2、无与伦比的价值 • 定制配置采用三个不同磁盘系统架、多种驱动器类型和一套齐备的 SAN 接口&…

MySQL-含json字段表和与不含json字段表查询性能对比

含json字段表和与不含json字段表查询性能对比 说明: EP_USER_PICTURE_INFO_2:不含json字段表 20200729json_test:含有json字段表 其中20200729json_test 标准ID、MANAGER_NO、PHONE_NO 为非json字段 data为json字段 2个表中MANAGER_NO、PHONE_NO都创建了各自的索引 测试…