一、配置dcmtk

1  文件下载---地址,Software Development based on DCMTK - dicom.offis.de

源文件下载,选择.zip下载,.tar.gz为Linux和macOS下面常见的压缩包


支持库下载

解决 DCMTK 在 Windows 上编译时所需的依赖库问题

libiconv

GNU有自己的开源项目libiconv,大多数非嵌入式的Linux发行版应该是使用这个

icu4c

ICU 是比较有特色的一个实现:跨平台,历史悠久,支持 Java 和 C++


CMake下载,网址Download CMake


2 使用CMake生成适用于 Windows 的DCMTK构建系统(Visual Studio 解决方案)

首先,初始化CMake配置过程,生成适用于 VS2022 的解决方案文件

底层操作包括:1 检测系统上安装的编译器(这里指定了VS2022,所以会使用对应的MSVC编译器)。2 运行CMakeLists.txt中的指令,设置项目变量(如DCMTK的编译选项)。3 在构建目录中生成项目文件和缓存文件(CMakeCache.txt)

具体操作包括:1 关闭所有和VS有关的程序,然后打开CMake-gui,设置源码包路径和DCMTK工程的存放路径,勾选Grouped(将相关配置项分组显示,方便查找 DCMTK 特定选项(如DCMTK_WITH_OPENSSL)和Advanced(显示所有高级配置选项,如CMAKE_INSTALL_PREFIX等)


2 点击Conifigure,在打开的窗口里选择相应的VS版本(这里为Visual Studio 17 2022),点击Finish。接着CMake会开始扫描本机的编译环境并进行相关的配置,这一步大概要花费十来分钟


其次,再次配置可配置变量

初始配置后CMake-gui中会显示可配置的变量(红色背景)。可以根据需要调整这些变量(如设置CMAKE_INSTALL_PREFIX、开启/关闭某些特性等)。调整后需要再次点击Configure,直到没有红色变量出现,然后点击Generate生成最终的解决方案。

具体设置包括:1 BUILD组设置

2 DCMTK组设置(支持库)


3 WITH组设置(支持库路径)

4 CMAKE组设置(主要设置安装路径)

再次点击Conifigure,第二次编译很快结束

最后,生成VS解决方案

点击Generate生成dcmtk.sln,位于D:\c++\dcmtk

3 使用VS2022 执行编译和安装

首先,打开DCMTK.sln

在路径D:\c++\dcmtk中打开dcmtk.sln,如下所示:


其次,编译 DCMTK 工具包中包含的所有核心库、模块和应用程序,生成二进制文件

输出文件如下

具体过程,打开VS的生成(Build)---批生成(Batch build)对话框,在ALL_BUILD里勾选Debug和Release,点击生成(Build),编译完成后会在工程bin目录下生成exe和dll,lib目录下生成lib,这个过程可能耗时较久,结束之后解决方案的输出可能报错,只要生成的输出不报错就没问题
最后,编译INSTALL项目,部署开发环境

INSTALL项目的作用是将编译好的库和头文件等复制到安装目录(通常是在CMake配置时指定的目录)

具体过程,打开batch build对话框,在INSTALL里勾选想要配置的install版本(Debug或Release),我们选择debug版本,如果报错“msb3073,命令setlocal”,则以以管理员身份运行 VS2022。

生成后,会将相应的文件拷贝到在CMake里设置的CMAKE_INSTALL_PREFIX的路径下

包括:bin目录里为exe和dll
           include目录为头文件
           lib目录下生成lib

将支持库包里(D:\install\dcmtk\dcmtk-3.6.7-win64-support-MD-iconv-msvc-17.0\zlib-1.2.12\lib)的zlib_d.lib拷贝到生成的lib目录(上图)

二 、运行相关项目
1、设置VC++目录
设置include和lib目录,添加之前设置的安装目录(D:\Program Files (x86)\c++\install\dcmtk)


2、设置Qt Project Setting目录
设置Qt安装路径
3、设置附加依赖库
设置附加依赖库,内容如下:

iphlpapi.lib
WS2_32.Lib
WSock32.Lib
NetAPI32.Lib
// 上述四个为系统库
ofstd.lib
oflog.lib
dcmdata.lib
cmr.lib
dcmdsig.lib
dcmect.lib
dcmfg.lib
dcmimage.lib
dcmimgle.lib
dcmiod.lib
dcmjpeg.lib
dcmjpls.lib
dcmnet.lib
dcmpmap.lib

dcmrt.lib


// 上述为DCMTK库
zlib_d.lib
// 上述为支持包库

4、添加dll
直接运行代码的话会直接奔溃,需要添加对应的dll文件,将dcmtk安装目录以下文件拷贝进工程的exe程序同目录下即可,之后即可运行项目

二 配置opencv

1 Releases - OpenCV下载OpenCV,选择opencv-4.5.5的windows

文件夹中文件如下

2 更改环境变量

右键点击电脑,选择属性---高级系统设置---环境变量---系统变量---Path---新建

3 visual studio中的配置

打开visual studio 2022,新建一个c++空项目

点击opencv2,右键属性

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

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

相关文章

2025 最新 Appium Inspector 环境搭建教程

1 环境搭建背景 版本升级:Appium 2.0 版本替代 1.x,原 Appium Desktop 因安全漏洞和功能废弃不再适用。需求痛点:Android Studio 仅支持 debug 程序元素定位,需通过 Appium Inspector 实现通用 APK 元素定位。 2 环境搭建步骤 …

Vue 安装使用教程

一、Vue 简介 Vue(读作 /vjuː/,类似于“view”)是一款用于构建用户界面的渐进式 JavaScript 框架。它易于上手,轻量高效,适合快速构建前端界面,广泛应用于各类 Web 项目中。 二、Vue 安装方式 2.1 直接通…

通过http调用来访问neo4j时报错,curl -X POST 执行指令报错

curl -X POST ^ More? http://localhost:7474/db/neo4j/tx/commit ^ More? -H Authorization: Basic bmVvNGo6MTIzNDU2Nzg ^ More? -H Content-Type: application/json ^ More? -d { \"statements": [{\"statement": \"MATCH (n) RETURN n, label…

Node.js到底是什么

我想像是npm、vite这些名词大家都很熟悉,对它们的作用也有大致印象,但是可能都像我一样不明白Node.js到底是什么,这里给大家带来一个简单介绍。 Node.js 详解:历史发展、生态构建与底层原理 一、Node.js 的起源与历史发展 诞生背…

Rust与Go:GAN实战对决

Rust与Go生成对抗 GAN概念 GAN的全称是Generative Adversarial Network,中文翻译为生成对抗网络。这是一种深度学习模型,由两部分组成:生成器(Generator)和判别器(Discriminator)。生成器的任务是创建数据,而判别器的任务是区分生成器创建的数据和真实数据。这两部分…

pyspark driver 上传pod本地文件到对象存储

前提: pyspark driver on k8s,环境变量或者spark_home/jars 下有相关对象存储的包,报错包问题就这里添加jar即可 from py4j.java_gateway import java_import from pyspark.sql import SparkSession# ----------------------------------------------------------------------…

使用GeoServer发布地图shapefi(.shp)数据

1.创建新的工作区 2.添加新的数据存储,选择Shapefile - ESRI™ Shapefiles (*.shp) 如果这个发布页面退出了 可以这样找回来 点击发布返回图层我们发布的数据在图层显示 点击Layer Preview 预览 现在前端就可以用 OpenLayers地图来调用这个服务了

python+uniapp基于微信小程序的PS社区系统

文章目录 具体实现截图本项目支持的技术路线源码获取详细视频演示:文章底部获取博主联系方式!!!!本系统开发思路进度安排及各阶段主要任务java类核心代码部分展示主要参考文献:源码获取/详细视频演示 ##项目…

设计模式 - 组合思维_Unix 设计哲学三大原则

文章目录 引言Unix 哲学本质三大启示总览启示一:保持简单清晰性软件复杂度来源实践方法 启示二:借鉴组合理念Unix 组合示例避免“定制驱动”烂设计 启示三:重拾数据思维数据驱动编程演进案例分析 总结 引言:介绍 Unix 与 Unix 哲学…

C++ 快速回顾(四)

C 快速回顾(四) 前言一、纯虚函数二、final关键字1.作用到函数2.作用到类 三、虚函数原理四、Lambda一些知识补充 前言 用于快速回顾之前遗漏或者补充C知识 一、纯虚函数 纯虚函数主要是当接口,没有具体的实现要到派生类去实现。 纯虚函数…

vue入门学习时,按照官方的教程生成的vue3项目后,命令行运行npm install出现一堆warn,然后运行npm run dev报错,项目启动失败

日期:2025年6月27日 星期五农历六月初三 VUE版本:vue3 IDE:vs code vue入门学习时,按照官方的教程生成的vue3项目后,命令行运行npm install出现一堆warn,然后运行npm run dev报错,项目启动失败…

jQuery EasyUI 安装使用教程

一、jQuery EasyUI 简介 jQuery EasyUI 是一套基于 jQuery 的用户界面框架,提供了丰富的 UI 组件,如数据表格、树形结构、窗体、对话框等,适用于快速开发后台管理系统和 Web 应用界面。它封装了大量常用功能,使用简单&#xff0c…

python下划线开头函数总结

在Python中,以双下划线 __ 开头的函数(或变量)具有特殊的命名含义,主要用于实现类的私有成员、魔法方法(特殊方法)和名称修饰(Name Mangling)机制。下面详细解释这三种情况&#xff…

代理模式 - Flutter中的智能替身,掌控对象访问的每一道关卡!

痛点场景:直接加载高清大图 假设你的应用需要显示用户相册: NetworkImage(https://example.com/high-res-photo.jpg)面临的问题: 📶 网络差时长时间白屏💾 重复下载相同图片浪费流量🔒 敏感图片无权限验…

Python集合的创建

一、前言 在 Python 编程中,集合(set)是一种非常实用的数据结构,它能够存储一组无序且不重复的元素。集合广泛应用于数据去重、交并差运算等场景。 本文将重点讲解 Python 中集合的创建方式,包括使用大括号 {}、set(…

作物生长模型Oryza V3实战15:AutoCalibration程序详解

ORYZA 模型中的 AutoCalibration (v2.1).exe 是用于 ORYZA 模型参数自动校准的可执行程序,在优化 ORYZA 模型参数、提高模型模拟准确性方面具有重要作用。程序能够通过特定算法,在给定的参数取值范围内,自动搜索出一组最优的参数组合,使得模型模拟结果与实际观测数据(如作…

算法-每日一题(DAY12)最长和谐子序列

1.题目链接: 594. 最长和谐子序列 - 力扣(LeetCode) 2.题目描述: 和谐数组是指一个数组里元素的最大值和最小值之间的差别 正好是 1 。 给你一个整数数组 nums ,请你在所有可能的 子序列 中找到最长的和谐子序列的…

阿里云-云效自动部署spring boot项目

1.使用云效通过docker自动部署spring boot项目 1.1 spring boot项目配置 # 阿里云的jdk17镜像 FROM registry.cn-zhangjiakou.aliyuncs.com/publicci/openjdk:17-jdk-alpineENV APP_HOME /home/admin/app/# 将target/arms-application.jar 复制到容器中 /home/admin/app/app.…

SQL篇 添加约束、删除约束

SQL篇 添加约束、删除约束 1、相关链接2、约束的增删找查2.1 查看约束(主键、外键、唯一性、检查约束)2.2 查看默认约束2.3 修改约束(添加/编辑/修改)2.3.1 添加主键约束2.3.2 添加外键约束2.3.3 添加唯一性约束2.3.4 添加检查约束…

Python PyTorch 深度学习库 包 timm

文章目录 📦 主要特点🚀 安装方式🧪 使用示例示例1:加载一个预训练模型进行图像分类示例2:获取模型结构信息 🌐 官方资源🔍 常见用途✅ 优势总结 Timm 是一个非常流行且功能强大的 Python 深度学…