Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing dcm2pnm、dcmj2pnm和dcml2pnm之间的差异_Image Processing_Dicom_Dcmtk - Fatal编程技术网

Image processing dcm2pnm、dcmj2pnm和dcml2pnm之间的差异

Image processing dcm2pnm、dcmj2pnm和dcml2pnm之间的差异,image-processing,dicom,dcmtk,Image Processing,Dicom,Dcmtk,标题说明了一切。dcmtk工具箱()的dcm2pnm()、dcmj2pnm()和dcml2pnm()命令之间有什么区别?它们似乎都能将dicom图像转换成其他格式。是否有任何特殊情况,其中一个应该优先于其他人 编辑:看起来dcml2pnm支持更多的格式。为什么不把它用于所有目的呢?其他命令的优点是什么?dcmj2pnm将JPEG编解码器添加到dcm2pnm功能中。因此,它能够处理JPEG压缩的DICOM数据并生成JPEG输出图像。因此,它是dcm2pnm功能的超集。 我认为这是因为dcmtk提供

标题说明了一切。dcmtk工具箱()的dcm2pnm()、dcmj2pnm()和dcml2pnm()命令之间有什么区别?它们似乎都能将dicom图像转换成其他格式。是否有任何特殊情况,其中一个应该优先于其他人


编辑:看起来dcml2pnm支持更多的格式。为什么不把它用于所有目的呢?其他命令的优点是什么?

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


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

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

解释得很好。这些函数是否返回true/false或1/0等,以指示dicom文件是否可以正确打开和转换?@rnso是的,它们返回这些退出代码。也有计划对不同类型的错误使用不同的退出代码,并将其记录在手册页中,但这仍然在我们的待办事项列表中(当然,对于所有DCMTK命令行工具)。