我的工作需要使用 DICOM 文件。每个 DICOM 文件在单个目录中构成许多 .dcm 文件。我需要通过网络发送这些文件,由于文件的巨大大小,这个过程有点如此。我也是一名程序员,我想知道压缩此类文件的理想方法是什么?我说的是将在本地计算机上进行的压缩,然后在目标计算机上解压缩(即压缩仅用于加速文件的网络传输)。有没有一种简单的方法来裁剪 DICOM 文件?(这些文件包含整个头部的图像,而我只对头部的一小部分感兴趣)。
谢谢!
我的工作需要使用 DICOM 文件。每个 DICOM 文件在单个目录中构成许多 .dcm 文件。我需要通过网络发送这些文件,由于文件的巨大大小,这个过程有点如此。我也是一名程序员,我想知道压缩此类文件的理想方法是什么?我说的是将在本地计算机上进行的压缩,然后在目标计算机上解压缩(即压缩仅用于加速文件的网络传输)。有没有一种简单的方法来裁剪 DICOM 文件?(这些文件包含整个头部的图像,而我只对头部的一小部分感兴趣)。
谢谢!
在医学背景下,有损压缩介于不鼓励和禁止之间。如果您坚持裁剪现有数据集,则标准要求您至少形成新的图像和系列 UID。该标准确实允许以 jpeg2000 的形式进行无损压缩,但这种情况非常罕见 - 如果我不得不打赌,我会说您的数据集完全未压缩。
以我的经验,将医学数据集压缩为一个可靠的档案要好得多——也就是说,将所有图像统一到一个流中。这很有意义,因为附近的图像之间通常有很多相似性,这是利用这种相似性的方法(统一压缩字典)。这可作为 rar 和 gzip 压缩器的命令行选项使用。
解决方案:
gdcmconv --jpeg uncompressed.dcm compressed.dcm
或者为了更好的压缩比:
gdcmconv --jpegls uncompressed.dcm compressed.dcm
见: http: //gdcm.sourceforge.net/html/gdcmconv.html
我还建议不要进行有损压缩,您需要成为 DICOM 向导才能正确执行此操作(请参阅 DICOM 标准中的派生机制)。我还建议不要裁剪图像(您需要重新生成 UID,更新帧或参考...)
高温高压
我们有一个名为“DICOM Shrinkinator”的压缩路由器,它可以在将研究传输到 PACS 时执行此操作:
您可以在一端使用像 lzma 压缩这样的简单方法来打包文件并将它们发送过来。这是最简单的解决方案,因为您可以获取 gzip 之类的内容并以编程方式轻松打包/解压缩文件。这可能有很大帮助,因为现代计算机更喜欢传输/接收一个大文件而不是许多小文件(单个 1GB 文件的传输速度比 10000 个 100KB 文件要快得多)。
至于实际减少聚合大小,每个 .dcm 文件可能是一个切片(如果您正在查看诸如 MRI 或 CT 数据之类的数据),并且您使用的查看器会将切片重建为 3d 图像。裁剪它们并非不可能,但解析 DICOM 格式有点棘手。我不知道有任何免费程序可以帮助您解析 DICOM 文件,但我已经有一段时间没有寻找了。
由于 DICOM 是一种容器格式,所以你所追求的图像数据通常以一种常见的格式(例如 JPEG)存储,所以如果你能够抓取文件的相关部分来提取图像数据,你可以使用任何可用于将图像裁剪为您选择的任何尺寸的大量图像处理工具。