问题标签 [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.

0 投票
1 回答
773 浏览

dump - Dcmtk 转储,通过不加载所有内容来减少时间

我正在使用DICOM图像并使用DCMTK进行一些处理。

我的问题是我必须只检索一批图像的某些标签。但是这个过程需要的时间太长了。

我在用着dcmdump -M -L +P '0010,0020' +P '0010,0010

  • -M不要加载很长的值(例如像素数据)
  • -L打印缩短的长标签值(默认)
  • +P打印标签的文本转储,该选项可以指定多次

但是单个文件的“转储”需要~1sc. 这是因为仍然加载了所有标签,但是+P 正在搜索所有标签。

我只有几个标签要检索。是否有可能只加载某些特定标签以减少转储文件所需的时间?

也许 DCMTK 不是正确使用的工具。我对一切都持开放态度。

0 投票
1 回答
132 浏览

c++ - 如何在 Mac OSX 上将 DCMTK 与 Qt 链接

我是所有这些 Qt、Dcmtk 和 CMake 的新手,我想将它用于学校项目。互联网上有很多东西可用,但基本上适用于 Windows ..

我正在尝试将 Dcmtk 与 Qt 链接并使其在我的 mac 上运行,但它不起作用,错误是:

错误输出

错误输出

我已经用 CMake 构建了 dcmtk(注意 CMake 没有生成正确的路径......)

我知道这个错误似乎经常出现,我应该添加一个 LIB += ...但是我尝试了很多不同的错误,但我找不到任何可以根据链接 dcmtk 解决我的问题的东西

根据网上找到的一些代码,这是我当前的代码:

。轮廓

。轮廓

主文件

主文件

如果有人能启发我,我现在感觉有点无能为力。

谢谢!

0 投票
1 回答
2216 浏览

dicom - DICOM 无法使用 c-move:移动请求失败:0006:0317 对等中止关联(或从未连接)

我正在使用 OFFIS DICOM 工具包 (dcmtk) 中的 find-SCU 工具运行以下命令:

我不断收到错误。

该关联似乎运作良好,但实际的 c-move 似乎在 错误传输消息的那一刻失败

0 投票
1 回答
305 浏览

dicom - GDCM C-Move 问题与包含文档/报告的研究

我不认为我会得到我想要的答案,但我想在放弃 GDCM 之前我会问。

我已经使用 GDCM 库构建了一个工具来在我们的本地 PACS 上执行一些查询/检索。在测试期间,一切正常,但现在我已经部署了它,我们遇到了一个主要问题。

当 C-Move 正在传输一项研究(具有多个系列)并遇到带有文档或报告的系列(IE 患者协议、剂量报告)时,它会停止传输任何更多图像,即使对于研究中的其他系列也是如此。使用 Wireshark,我可以看到正在发送 C-Move 请求,但没有返回 C-Store 传输。

这将持续到下一个研究,该研究将正常转移,直到它到达另一个具有文档/报告的系列。我们在早期测试期间没有发现这一点,因为我们正在测试不包含报告的选定研究。

GDCM 不使用 C-Move 与非图像打球是否有原因?如果我不能轻松克服库的这个限制,有没有办法忽略带有报告的系列,或者只有一张图像的系列(这是侦察图像和报告的存储方式,对我来说都不是必需的)。我是否需要为我的 Q/R 工具更改 DCMTK 库?

干杯,

申斯莫比尔

0 投票
1 回答
169 浏览

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

我得到了这个错误:

在此处输入图像描述

0 投票
1 回答
279 浏览

c++ - 如何将深度 = 17 的 DicomImage(Dcmtk) 转换为 Mat(Opencv) 对象?

使用此代码时,我没有得到我想要的结果(见图)。

因为图像的深度为 17,如果将 CV_16UC1 更改为 CV_32xx,我会得到一个无意义的图像。显然 17 位需要超过 16 位才能正确存储。我的问题是,我应该使用哪种 Opencv Map 类型(CV_32SC1,CV_32SC2,CV_32SC3,CV_32SC4 或其他),它们之间有什么区别,我是否必须使用位掩码来防止在其余高位中出现垃圾,我该如何去做?

[图】

0 投票
1 回答
405 浏览

dicom - DICOM 像素数据无损渲染和表示

我引用 :

DICOM 支持高达65,536(16 位)灰度级的单色图像显示,从而捕捉医学成像中最细微的细微差别。相比之下,将 DICOM 图像转换为 JPEG 或位图(限制为256级灰度)通常会使图像无法用于诊断读取。- 医学数字成像和通信 (DICOM):Oleg S. Pianykh 的实用介绍和生存指南

由于我是图像处理的初学者,我习惯于处理具有 256 级的彩色和单色图像,因此对于 Dicom 图像,我必须处理像素而不将它们渲染到 256 级?,因为信息丢失。

注意:如果您可以为这个问题提供一个更好的标题,请随意这样做,我很难做到这一点并且没有得到一个好的结果。

0 投票
1 回答
208 浏览

dicom - DCMTK 库中 EFV_Default 的匹配 VOI LUT 函数值是多少?

我正在使用 Dcmtk 库,我使用了getVoiLutFunction()and 这个函数返回三个不同的enum输出(EFV_LinearEFV_SigmoidEFV_Default),对于我当前的 CT 图像,我得到了EFV_Default值。

我查看了标准文档,发现 VOI LUT 函数可以具有三个值之一(LINEAR, LINEAR_EXACT, SIGMOID),并且他们提到LINEAR在默认值中,当 ( VOI LUT Function ) 属性不存在时,我很困惑,什么是 DCMTK 的匹配项EFV_Default enum

PS:我正在处理CT图像。

0 投票
1 回答
1469 浏览

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 已经工作了。

问候

0 投票
1 回答
248 浏览

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 的图像。在此处输入图片描述 请帮我解决这个问题!