我的工作需要使用 DICOM 文件。每个 DICOM 文件由单个目录中的许多 .dcm 文件组成。我需要通过网络发送这些文件,由于文件很大,这个过程在某种程度上是这样的。 我也是一名程序员,我想知道压缩此类文件的理想方法是什么?我说的是在本地计算机上进行压缩,然后在目标计算机上解压缩(即压缩仅用于加速文件的网络传输)。有没有一种简单的方法来裁剪 DICOM 文件? (这些文件包含整个头部的成像,而我只对头部的一小部分感兴趣)。
谢谢!
在医学领域,有损压缩介于不鼓励和禁止之间。如果您坚持裁剪现有数据集,该标准要求您至少形成新的图像和系列 UID。该标准确实允许以 jpeg2000 的形式进行无损压缩,但这种情况非常罕见 - 如果我必须打赌,我会说你的数据集完全未压缩。
根据我的经验,将医疗数据集压缩为可靠的存档要好得多,即将所有图像统一到单个流中。这很有意义,因为附近的图像之间通常存在很多相似性,而“this”是利用这种相似性的方法(统一的压缩字典)。 这可作为 rar 和 gzip 压缩器的命令行选项使用。
至于实际减少聚合大小,每个 .dcm 文件可能是一个切片(如果您正在查看 MRI 或 CT 数据等内容),并且您使用的查看器将切片重建为 3D 图像。裁剪它们并非不可能,但解析 DICOM 格式有点棘手。我不知道有任何免费程序可以帮助您解析 DICOM 文件,但我已经有一段时间没有寻找了。
由于 DICOM 是一种容器格式,您所追求的图像数据通常以通用格式存储(例如 JPEG),因此如果您能够抓取文件的相关部分来提取图像数据,您可以使用任何可用于将图像裁剪为您选择的任何尺寸的大量图像处理工具。
rsync
来发送文件,并使用 -z 选项。这将在传输前自动压缩文件,并在另一端解压缩。整个过程无损且透明。
我对我拥有的一些 dicom 数据(一个包含大约 6000 个文件的文件夹 - 每个 dicom 切片)进行了一些测试。当我这样做时:
rsync -azvh --include='*.dcm' --exclude='*' --progress . temp1
我得到:
sent 766.42M bytes received 133.80K bytes 10.43M bytes/sec
total size is 1.97G speedup is 2.57
当我不压缩时(没有
z
标志)
rsync -avh --include='*.dcm' --exclude='*' --progress . temp2
结果是
sent 1.97G bytes received 133.80K bytes 87.46M bytes/sec
total size is 1.97G speedup is 1.00
如您所见,这是获得显着收益的快速而简单的方法。如果您的计算机速度很快而网络速度很慢,这可能是加快速度的最简单方法之一。
(注意 - 这适用于 Mac 和 Linux 系统;我不确定这是否适用于 Windows,或者等效的是什么。)