dcm2pnm、dcmj2pnm和dcml2pnm的区别

rns*_*nso 3 image-processing dicom dcmtk

标题说明了一切。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 支持更多格式。为什么不把它用于所有目的?其他命令的优点是什么?

J. *_*ier 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 中可用的所有图像压缩方案的工具,那么编写这样一个工具应该很容易。