问题标签 [dcmtk]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 如何在 Mac OSX 上将 DCMTK 与 Qt 链接
我是所有这些 Qt、Dcmtk 和 CMake 的新手,我想将它用于学校项目。互联网上有很多东西可用,但基本上适用于 Windows ..
我正在尝试将 Dcmtk 与 Qt 链接并使其在我的 mac 上运行,但它不起作用,错误是:
错误输出
我已经用 CMake 构建了 dcmtk(注意 CMake 没有生成正确的路径......)
我知道这个错误似乎经常出现,我应该添加一个 LIB += ...但是我尝试了很多不同的错误,但我找不到任何可以根据链接 dcmtk 解决我的问题的东西
根据网上找到的一些代码,这是我当前的代码:
。轮廓
主文件
如果有人能启发我,我现在感觉有点无能为力。
谢谢!
dicom - GDCM C-Move 问题与包含文档/报告的研究
我不认为我会得到我想要的答案,但我想在放弃 GDCM 之前我会问。
我已经使用 GDCM 库构建了一个工具来在我们的本地 PACS 上执行一些查询/检索。在测试期间,一切正常,但现在我已经部署了它,我们遇到了一个主要问题。
当 C-Move 正在传输一项研究(具有多个系列)并遇到带有文档或报告的系列(IE 患者协议、剂量报告)时,它会停止传输任何更多图像,即使对于研究中的其他系列也是如此。使用 Wireshark,我可以看到正在发送 C-Move 请求,但没有返回 C-Store 传输。
这将持续到下一个研究,该研究将正常转移,直到它到达另一个具有文档/报告的系列。我们在早期测试期间没有发现这一点,因为我们正在测试不包含报告的选定研究。
GDCM 不使用 C-Move 与非图像打球是否有原因?如果我不能轻松克服库的这个限制,有没有办法忽略带有报告的系列,或者只有一张图像的系列(这是侦察图像和报告的存储方式,对我来说都不是必需的)。我是否需要为我的 Q/R 工具更改 DCMTK 库?
干杯,
申斯莫比尔
linux - 如何正确链接 Dcmtk 与 Qt for Linux?
我的目标是打开 Dicom 文件并将它们转换为 cv::Mat 以使用 Opencv 处理它们。
我在 ubuntu 18.4.1 上编译了 dcmtk 3.6.3 并尝试将其与 Qt Creator 4.6.2 的 Qt 5.11.1 链接,但未能这样做。
和主要的:#include
我得到了这个错误:
c++ - 如何将深度 = 17 的 DicomImage(Dcmtk) 转换为 Mat(Opencv) 对象?
使用此代码时,我没有得到我想要的结果(见图)。
因为图像的深度为 17,如果将 CV_16UC1 更改为 CV_32xx,我会得到一个无意义的图像。显然 17 位需要超过 16 位才能正确存储。我的问题是,我应该使用哪种 Opencv Map 类型(CV_32SC1,CV_32SC2,CV_32SC3,CV_32SC4 或其他),它们之间有什么区别,我是否必须使用位掩码来防止在其余高位中出现垃圾,我该如何去做?
[
dicom - DICOM 像素数据无损渲染和表示
我引用 :
DICOM 支持高达65,536(16 位)灰度级的单色图像显示,从而捕捉医学成像中最细微的细微差别。相比之下,将 DICOM 图像转换为 JPEG 或位图(限制为256级灰度)通常会使图像无法用于诊断读取。- 医学数字成像和通信 (DICOM):Oleg S. Pianykh 的实用介绍和生存指南
由于我是图像处理的初学者,我习惯于处理具有 256 级的彩色和单色图像,因此对于 Dicom 图像,我必须处理像素而不将它们渲染到 256 级?,因为信息丢失。
注意:如果您可以为这个问题提供一个更好的标题,请随意这样做,我很难做到这一点并且没有得到一个好的结果。
dicom - DCMTK 库中 EFV_Default 的匹配 VOI LUT 函数值是多少?
我正在使用 Dcmtk 库,我使用了getVoiLutFunction()
and 这个函数返回三个不同的enum
输出(EFV_Linear
、EFV_Sigmoid
、EFV_Default
),对于我当前的 CT 图像,我得到了EFV_Default
值。
我查看了标准文档,发现 VOI LUT 函数可以具有三个值之一(LINEAR
, LINEAR_EXACT
, SIGMOID
),并且他们提到LINEAR
在默认值中,当 ( VOI LUT Function ) 属性不存在时,我很困惑,什么是 DCMTK 的匹配项EFV_Default
enum
PS:我正在处理CT图像。
c++ - DCMTK 了解“DIMSE No valid Presentation Context ID”错误
我目前正在开发一个简单的应用程序,用于在 PACS 上查询/检索数据。为此,我使用 DCMTK,并使用 DCM4CHEE PACS 作为测试服务器。
我的目标是实现简单的 C-FIND 查询和 C-MOVE 检索系统(加上自定义 SCP 以实际下载数据)。
为此,我创建了一个继承 DCMTK DcmSCU 类的CustomSCU类。
我首先实现了一个 C-ECHO 消息,效果很好。
然后,我尝试实现 C-FIND 请求,但我从我的应用程序中收到错误“DIMSE No valid Presentation Context ID” (下一段中将详细介绍),但没有来自 DCM4CHEE 的其他日志。然后,我使用命令工具findscu(来自 dcmtk)查看是否存在一些配置问题,但该工具运行良好。因此,为了实现我的 C-FIND 请求,我已经阅读了findscu的源代码(此处)并在我的代码中进行了修改(这意味着我没有使用DcmSCU::sendCFindRequest而是使用 DcmFindSU 类)。
但是现在,我面临着与 C-MOVE 请求相同的问题。我的代码非常简单:
我也尝试过使用UID_MOVEStudyRootQueryRetrieveInformationModel而不是UID_MOVEPatientRootQueryRetrieveInformationModel,结果相同:我的应用程序显示错误
DIMSE 没有有效的表示上下文 ID
据我了解,表示上下文是一种或多种传输语法和一个 SOP 类的串联。我读到问题可能来自不接受我的演示上下文的 PACS。可以肯定的是,我使用了movescu工具(来自DCMTK)。它起作用了,我在 de server DCM4CHEE 的日志中看到了这一点:
这意味着movescu工具在尝试实际移动之前会进行查找?因此,我更改了我的应用程序上下文创建:
(也试过学习根)
但这并没有奏效。问题似乎出在客户端,如findPresentationContextID(pc, ""); 无论如何,总是返回 0。
我觉得不可能调整movescu工具的代码,因为它看起来非常复杂,不适合简单的检索操作。
我不知道该尝试什么。我希望有人可以帮助我了解发生了什么。这是我的应用程序的最后一部分,因为存储 SCP 已经工作了。
问候
android - android 的 DCMTK 库编译
我正在尝试编译 DCMTK 源代码以生成适用于 android 平台的库。我使用CMAKE3.12.1编译源代码。设置 SDK 和 NDK 后,我收到此错误:
CMake/dcmtkUseAndroidSDK.cmake:301 (MESSAGE) 处的 CMake 错误:请选择
要使用的 Android 模拟器 Android 虚拟设备 (AVD) 配置!调用堆栈(最近调用优先):
CMake/dcmtkPrepare.cmake:179 (DCMTK_ANDROID_START_EMULATOR)
CMakeLists.txt:17 (INCLUDE)*
我已经使用 Android Studio 生成了 AVD,但仍然没有在 CMAKE GUI 的 ANDROID_EMULATOR_AVD 下拉菜单中选择 AVD。我添加了 CMAKE-GUI 的图像。在此处输入图片描述 请帮我解决这个问题!