0

我正在寻找一种方法来压缩 dicom 文件并将它们发送到远程服务器(在我的例子中是 nodejs)

我尝试了 bz2 压缩,它似乎在大型 dicom 文件上运行良好(使用 10 Mb 文件对其进行了测试,这给了我一个 5Mb 的压缩文件)。

当涉及到小尺寸(如 250Kb 文件)时,我的尺寸减少了几 kb(大多数情况下为 5 到 10 kb),这是不值得的

有人可以解释一下为什么 bz2 可以很好地处理大型 dicom 文件,是否有更好的方法来压缩 dicom 文件,我可以使用这些方法通过互联网发送它们。

提前致谢。

4

2 回答 2

0

没有一种解决方案可以完美地满足所有...

BZ2基于这样的原理,即图像中经常出现的“颜色”(或灰度值,但我将在本说明中使用“颜色”)以比稀有颜色更少的位进行编码。因此,根据经验:图像越大,压缩率就越好。

JPEG是一种不同的方法,它将图像分解为图块并优化每个图块的编码。因此,与 BZ2 相比,压缩率对图像大小的依赖性较小。JPEG 有不同的风格(有损、无损、JPEG 2000,它可以为不同目的创建不同的压缩数据序列化,例如渐进式细化)。

在 DICOM 中有效但不受 DICOM 产品广泛支持的不太流行的压缩算法有:

RLE(运行长度编码)- 像素数据由成对的颜色和像素数描述,因此当图像中有较大的同质区域时,它的压缩效果非常好。在所有其他情况下,它会增加“压缩”图像的大小

JPEG-LS - 我不知道它在内部是如何工作的,但它提供了无损算法和有损算法,您可以在其中控制信息的丢失(压缩后像素值与原始像素值的最大差异)。据说它比传统的 JPEG 实现了更好的比率,但由于它没有得到广泛的支持,我还没有在实践中使用它。

如果您不想根据图像类型选择压缩算法,JPEG-Lossless 对您来说可能是一个不错的折衷方案。在典型的医学图像中,它实现了大约 1: 的平均压缩比,使用 JPEG-2000 会更高一些。

于 2016-07-22T07:15:45.987 回答
0

如果要使用图像压缩 DICOM 数据集,建议使用 DICOM 标准支持的压缩类型之一。这包括有损和无损 JPEG、JPEG 2000、JPEG-LS 和 RLE 等等。标准还支持使用基于标准的压缩技术对扩展灰度(12-16 位灰度)进行编码。

传输语法元素 (0002, 0010) 将指示 DICOM 数据集中的图像是否已经压缩。例如,与原始图像相比,重新压缩已经压缩的图像会显得压缩率更低。所以最好的测量方法是与原始的未压缩图像进行比较。如果您的原始图像已经被压缩,您可以使用(行 x 列 x 分配的位 / 8 x 每像素样本 x 帧数)计算未压缩的图像大小。此外,压缩比将根据图像类型(彩色与灰度)和使用的压缩技术而有所不同。通常,在处理真彩色图像与处理 X 射线等灰度图像时,您将获得更好的压缩效果。

至于使用 HTTP 上传文件,也可以使用 DICOM 标准定义的服务,例如 DICOMWeb (STOW-RS) REST 服务。

我在 LEAD Technologies 工作,如果您想在 DICOM 文件上测试各种压缩,我们有一个演示 exe(传输语法),它附带我们的免费 60 天评估 SDK,您可以使用它进行测试。此外,还有一个用于测试 DICOMWeb REST 服务的演示。您可以从我们的网站下载评估副本。

于 2016-07-21T17:29:14.183 回答