dcm2pnm、dcmj2pnm 和 dcml2pnm 之间的区别
Difference between dcm2pnm, dcmj2pnm and dcml2pnm
标题说明了一切。 dcm2pnm (http://support.dcmtk.org/docs/dcm2pnm.html), dcmj2pnm (http://support.dcmtk.org/docs/dcmj2pnm.html) and dcml2pnm (http://support.dcmtk.org/docs/dcml2pnm.html) commands of dcmtk toolkit (http://support.dcmtk.org/docs/pages.html) 有什么区别?他们似乎都将 dicom 图像转换为其他格式。是否有任何特殊情况应该优先于其他人?
编辑:dcml2pnm 似乎支持更多格式。为什么不将其用于所有目的?其他命令的优点是什么?
dcmj2pnm 将 JPEG 编解码器添加到 dcm2pnm 功能中。因此,它能够处理 JPEG 压缩的 DICOM 数据并生成 JPEG 输出图像。所以它是 dcm2pnm 功能的超集。
我认为这是因为 dcmtk 提供了不同的编译选项,允许包含/排除 libjpeg。只是将工具包的选项反映到随附的命令行工具中。当您使用选项 -h
开始时,由文件格式列表确认
对于 dcml2pnm,我不确定,但这是一个很好的猜测:与 JPEG 相同,但包括 JPEG-LS 编码器,这是 dcmtk 的另一个可选的第 3 方工具包。
我是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,但它不是 public DCMTK 的一部分),我的回答是:这主要是出于历史原因,但也是为了尽可能简单地保持各种 DCMTK 模块之间的依赖关系。
此外,我们将命令行工具视为底层 C++ class 库的一种示例应用程序。因此,如果您需要一个支持 DCMTK 中可用的所有图像压缩方案的工具,那么编写这样一个工具应该很容易。
标题说明了一切。 dcm2pnm (http://support.dcmtk.org/docs/dcm2pnm.html), dcmj2pnm (http://support.dcmtk.org/docs/dcmj2pnm.html) and dcml2pnm (http://support.dcmtk.org/docs/dcml2pnm.html) commands of dcmtk toolkit (http://support.dcmtk.org/docs/pages.html) 有什么区别?他们似乎都将 dicom 图像转换为其他格式。是否有任何特殊情况应该优先于其他人?
编辑:dcml2pnm 似乎支持更多格式。为什么不将其用于所有目的?其他命令的优点是什么?
dcmj2pnm 将 JPEG 编解码器添加到 dcm2pnm 功能中。因此,它能够处理 JPEG 压缩的 DICOM 数据并生成 JPEG 输出图像。所以它是 dcm2pnm 功能的超集。 我认为这是因为 dcmtk 提供了不同的编译选项,允许包含/排除 libjpeg。只是将工具包的选项反映到随附的命令行工具中。当您使用选项 -h
开始时,由文件格式列表确认对于 dcml2pnm,我不确定,但这是一个很好的猜测:与 JPEG 相同,但包括 JPEG-LS 编码器,这是 dcmtk 的另一个可选的第 3 方工具包。
我是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,但它不是 public DCMTK 的一部分),我的回答是:这主要是出于历史原因,但也是为了尽可能简单地保持各种 DCMTK 模块之间的依赖关系。 此外,我们将命令行工具视为底层 C++ class 库的一种示例应用程序。因此,如果您需要一个支持 DCMTK 中可用的所有图像压缩方案的工具,那么编写这样一个工具应该很容易。