3

标题说明了一切。dcm2pnm ( http://support.dcmtk.org/docs/dcm2pnm.html )、dcmj2pnm ( http://support.dcmtk.org/docs/dcmj2pnm.html ) 和 dcml2pnm ( http://support .dcmtk.org/docs/dcml2pnm.html ) dcmtk 工具包 ( http://support.dcmtk.org/docs/pages.html ) 的命令?他们似乎都将 dicom 图像转换为其他格式。是否有任何特殊情况应该优先于其他人?

编辑:似乎 dcml2pnm 支持更多格式。为什么不将其用于所有目的?其他命令有什么好处?

4

2 回答 2

5

我是 DCMTK 开发人员。

三个 DCMTK 命令行工具的区别在于:支持压缩的 DICOM 图像和输出格式。

  • dcm2pnm是 20 多年前开发的原始工具,最初只支持图像格式 PNM/PGM 进行输出(这也是该工具被称为“dcm2pnm”而不是“dcm2img”等的原因)。而且,因为当时 DCMTK 不支持任何封装的传输语法(即压缩),所以只能读取未压缩的 DICOM 图像。
  • dcmj2pnm位于 DCMTK 的子模块“dcmjpeg”中,增加了对 JPEG 压缩的 DICOM 图像(基于 IJG 库)以及用于输出的 JPEG 图像格式的支持。
  • dcml2pnm位于 DCMTK 的子模块“dcmjpls”中,并增加了对 JPEG-LS 压缩的 DICOM 图像的支持(基于 CharLS 库)。它不支持传统的 JPEG。

所有这些从源代码包中可能比从二进制包中更明显,但在上述参考文档中也提到了(参见“描述”部分)。

如果你问为什么有三种不同的工具(事实上,还有第四种支持 JPEG-2000,但它不属于公共 DCMTK 的一部分),我的回答是:这主要是出于历史原因,但也是为了保持各种 DCMTK 模块之间的依赖关系尽可能简单的原因。此外,我们将命令行工具视为底层 C++ 类库的一种示例应用程序。因此,如果您需要一个支持 DCMTK 中可用的所有图像压缩方案的工具,那么编写这样的工具应该很容易。

于 2017-04-12T08:14:16.003 回答
1

dcmj2pnm 将 JPEG 编解码器添加到 dcm2pnm 功能。因此,它能够处理 JPEG 压缩的 DICOM 数据并生成 JPEG 输出图像。所以它是 dcm2pnm 功能的超集。我认为这是因为 dcmtk 提供了不同的编译选项,允许包含/排除 libjpeg。只是将工具包的选项反映到随附的命令行工具中。从选项 -h 开始时由文件格式列表确认

对于 dcml2pnm,我不确定,但这是一个很好的猜测:与 JPEG 相同,但包括 JPEG-LS 编码器,这是 dcmtk 的另一个可选的 3rd 方工具包。

于 2017-04-11T12:15:38.547 回答