问题标签 [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 回答
2129 浏览

c++ - 使用 DCMTK (C++) 压缩 DICOM 文件

该死的我很沮丧...

按照此页面http://support.dcmtk.org/docs/mod_dcmjpeg.html中的示例,我编写了一个 C++ 程序来解压缩 JPEG 压缩的 DICOM 图像文件

现在我想反之亦然,从未压缩到压缩,如果我在同一页面中使用另一个示例,使用相同(或其他文件)代码编译并运行但无法压缩文件......

我看到在下面的代码之后,原来的Xfer和Current是一样的,这不好,因为需要不同

这就像chooseRepresentation方法失败....

更多线路

返回假

我在 dcpixel.cc 文件中看到了,调试代码进入

结果是假的....

我该如何解决?有人有一个代码可以用 DCMTK 或其他库压缩 DICOM 图像

这是完整的代码:

0 投票
2 回答
2175 浏览

c++ - DCMTK 字符集 Unicode 错误

我在 Visual Studio 2013 下使用 DCMTK 库。如果我在项目的属性中设置

编译时出现错误

如果我设置我可以解决Character Set: Use Multi-Byte Character Set

但我需要在字符集必须为 Unicode 的另一个项目中使用 DCMTK。查看错误,问题仅存在于关于日志的某些类中,可能我永远不会使用:所以我尝试注释出现错误的代码行,现在我可以使用 Unicode 进行编译。

这是解决问题的独特方法吗?我可以评论那部分有什么问题?

0 投票
3 回答
2367 浏览

c++ - 解决 LNK4098:defaultlib 'MSVCRT' 与 (DCMTK) 和 LNK2038/LNK2005 冲突

我在使用 C++ 语言的 Visual Studio 2013 项目中使用 DCMTK 3.6.1 库。我的代码在调试模式下完美运行,但在发布模式下却不行;当我尝试编译它时,我有 275 个错误,如下所示:

dcmdata.lib(dcdatset.obj):错误 LNK2038:检测到不匹配

我尝试了很多在网上找到的解决方案,但没有任何效果......

如果我尝试在发布模式下编译 DCMTL 库,则会出现以下错误:

你知道如何解决这个问题吗?

0 投票
2 回答
4555 浏览

c++ - 如何从字节创建 DICOM 图像 (DCMTK)

我想在可以创建 DICOM 图像的现有项目中使用 DCMTK 3.6.1 库。我想使用这个库,因为我想压缩 DICOM 图像。在一个新的解决方案(Visual Studio 2013/C++)中,按照 DCMTK 官方文档中的示例,我有这个代码,它可以正常工作。

现在我想在现有的 C++ 应用程序中使用相同的代码

实际上我用一帧上的图像进行了测试,所以 for 循环只完成了一次。我不明白为什么如果我选择dataset->chooseRepresentation(EXS_LittleEndianImplicit, &params);dataset->chooseRepresentation(EXS_LittleEndianEXplicit, &params);工作完美但不是当我选择dataset->chooseRepresentation(EXS_JPEGProcess14SV1, &params);

如果我在第一个应用程序中使用相同的图像,我可以毫无问题地压缩图像......

编辑: 我认为要解决的主要问题是status = dataset->chooseRepresentation(EXS_JPEGProcess14SV1, &rp_lossless)返回“未找到标签”。我怎么知道错过了哪个标签?

EDIT2:根据 DCMTK 论坛中的建议,我添加了关于分配的位的标签,现在适用于少数图像,但不适用于所有图像。对于某些图像,我再次出现“未找到标签”:我怎么知道其中一个标签丢失了?通常最好插入所有标签?

0 投票
2 回答
2575 浏览

c++ - DICOM 访问压缩数据 (DCMTK)

我在 DCMTK 3.6.1 库中苦苦挣扎,现在我在一种常见情况下被阻止:访问 DICOM 图像的压缩数据像素。

正如图书馆的作者在这里建议的那样http://support.dcmtk.org/redmine/projects/dcmtk/wiki/Howto_AccessingCompressedData,这是获取压缩数据的正确方法。

此代码有效,但它们从文件开始创建数据集。在我的代码中,我的数据集以这种方式填充

其中 pSource 包含我未压缩的像素数据。在此之后,我添加 Image DICOM 标签(第 28 组)并使用

从这个数据集开始,我想访问压缩数据

但行状态 = dpix->getEncapsulatedRepresentation(xferSyntax, rep, dseq); 重新调整失败并出现错误“找不到像素表示”,我不明白为什么。

奇怪的是,如果在访问压缩数据之前,我将压缩文件保存为fileformat.saveFile("compressedPixelData.dcm", EXS_JPEGProcess14SV1); 接下来我使用result = fileformat.loadFile("compressedPixelData.dcm");加载文件 ,一切正常

好像loadfile函数解决了问题,不知道怎么解决的,可能是填了一些标签?

我在调用 chooseRepresentation 函数之前填写的标签是:

  • DCM_Rows
  • DCM_列
  • DCM_BitsStored
  • DCM_SamplesPerPixel
  • DCM_PlanarConfiguration
  • DCM_HighBit
  • DCM_BitsAllocated
  • DCM_PixelRepresentation
  • DCM_RescaleIntercept
  • DCM_RescaleSlope
  • DCM_PhotometricInterpretation
  • DCM_PixelAspectRatio
  • DCM_ImagerPixelSpacing
  • DCM_PixelSpacing
0 投票
1 回答
2527 浏览

dicom - 如何使用 DCMTK 处理(即读/写)私有 DICOM 标签

关于处理 DICOM 中的私有标签。谁能给我下面的编码示例: 1.编写私有标签固定属性标签。2.读取私有标签的类似示例。注意:有时私有标签会被重新定位。当私有标签被重定位时如何读取私有标签。例如:有时 Private Creator 会位于 (4201,0010) LO [Test Data] # 16, 1 PrivateCreator (4201,1000) IS [11] # 2, 1 Unknown Tag & Data

或者它可以在 (4201,0011) LO [Test Data] # 16, 1 PrivateCreator (4201,1100) IS [11] # 2, 1 Unknown Tag & Data

阅读可重定位私有标签时的任何建议。同样如何在写作时避免重定位。

0 投票
1 回答
896 浏览

c++ - DICOM 序列定界项丢失加载文件 (DCMTK)

在我之前的一个应用程序中,我使用 DCMTK 创建了一个压缩的 DICOM 文件。我只使用 DCMTK 库来管理像素数据并进行压缩。我的意思是我已经关注了这个 wiki http://support.dcmtk.org/redmine/projec ... ressedData 并在获得 PixelData 后,我用我的函数(Write,for File)创建了一个 DICOM 文件。

一切正常,我可以毫无问题地打开并查看压缩文件。现在我想做反之亦然,所以我想导入我创建的压缩文件,解码并再次保存。我在这里使用了简单的示例(http://support.dcmtk.org/docs/mod_dcmjpeg.html)进行解码,但我的程序在 fileformat.loadfile 函数中失败并出现此错误:

"Sequence Delimitation Item missing"在控制台上我可以阅读"DcmSequenceOfItems: Reached the end of the stream before the end of sequence PixelData".

如果使用不同的文件,压缩和未压缩,不是我制作的,加载文件功能可以工作......这意味着,我认为,当我使用以前的应用程序创建压缩文件时,即使我检查了标签,也会出现问题并且我可以使用 Dicom Viewer 软件打开图像。

那个错误是什么意思?我该如何解决?也许我必须在创建压缩文件之前写标签 DcmSequenceOfItems ?

希望有人可以帮助

0 投票
1 回答
1477 浏览

c++ - 从 PixelData 值 (DCMTK) 开始解压缩 JPEG DICOM 图像

我想使用 DCMTK 解压缩 DICOM 文件,如本例http://support.dcmtk.org/docs/mod_dcmjpeg.html 但我的问题是我不想加载文件。

我有一个数组,里面有压缩的 PixelData 值。我已经尝试过这种方式但不起作用。

文件 test.dcm 已创建但我无法打开它(免费的 Dicom Viewr 软件崩溃)并且尺寸等于压缩文件,因此解码程序不起作用......我的错误是什么?

我也试过:

getUncompressedFrame返回错误“请求的字节数过多” 如果使用frameSize - 1而不是 frameSize 我有错误“非法调用可能是错误的参数”......但是为什么?!?

0 投票
1 回答
1156 浏览

dicom - DCMTK: Write DICOM file to memory

I am using DCMTK to write DICOM files to disk and this works quite well. So, I briefly do something as follows:

This works quite well. However, I would like to write the contents to some memory buffer. So, I would like to do something as follows:

and then somehow use the file_format to write to this buffer instead of the file. I see there is a 'write' method in the DcmFileFormat but could not figure out how to use it where I could specify my own byte array for it to write to.

0 投票
1 回答
172 浏览

linux - 哪个版本的 dcmtk 与 gcc 版本 4.8.2 兼容?

我正在尝试在我的 linux 系统 gcc 版本 4.8.2 上安装 dcmtk 3.6.0。但我收到一个错误“在此范围内未定义作为 ofoset.h 一部分的调整大小”。阅读后,我意识到这是由于 dcmtk 和 gcc 版本不匹配造成的。但我无法为我的编译器找到合适的。

任何帮助将不胜感激。