背景:

DICOM专栏系列中曾介绍过大多数的DICOM标准开源实现库,例如dcmtk、fo-dicom、mDCM,以及dcm4che。之前的介绍大都局限在表层,并未深入对比分析彼此的不同,因此在具体使用过程中很容易踩坑——例如此次对于dcm文件的压缩
近期由于项目需要,外出给客户部署云平台,鉴于当地网络环境以及数据量的问题,急需对数据进行压缩处理,由于医学数据主要用于临床辅助诊断,因此不能采用有损压缩,原本使用dcmtk对dcm进行无损和有损压缩都很方便(详情请检索之前的专栏博文),怎奈使用dcm4che进行压缩时遇到了问题,详情如下文。

dcm4chee中的压缩服务:

在dcm4chee官网中有关于压缩服务的介绍Compression Service,文中指出可以通过设置Storage SCP中的CompressionRules参数来开启压缩服务。设置方式依然以之前在Ubuntu14上搭建的dcm4chee服务端为例,浏览器输入:http://localhost:8088/jmx-console,弹出如下界面:

定位到其中的CompressionRules,设置各种类型图像的压缩方式,默认的设置如下:

这里为了立即启动压缩,添加新的压缩标准,即CTImageStorage:JLSL:0d,意思就是对CT格式的图像立刻进行Jpeg LossLess无损压缩。单击jmx-console下方的Apply Changes按钮即可应用改变。
随后使用dcmsnd.bat DCM4CHEE@localhost:11112 c:\nonjpeg.dcm进行测试,服务端提示如下错误:
No Image writer com.sun.media.imageioimpl.plugins.jpeg.CLibJPEGImageWriter available for format:jpeg.

【注】:针对该问题搜索了许久,并未找到好的解决方案,既然服务端无法实现压缩,但是隐约记得之前dcm4chee服务端时可以接收客户端发送的压缩数据的。因此决定转变思路,想办法直接在客户端进行压缩,然后上传到dcm4chee后台服务器中。

dcm4che压缩功能尝试:

按照博文Thread: How to compress using JPEG 2000的说明,dcm4che工具包自带压缩dcm的功能,于是进行了本地尝试,输入如下指令:
dcm2dcm -t 1.2.840.10008.1.2.4.70 c:\1.dcm c:\1jpeg.dcm,输出结果如下:

该错误与服务端之前的错误类似,提示缺少相应的jar包。通过检索该错误,找到的解决方案是:手动将jai_imageio.jar拷贝到系统jre\lib\ext目录下,重新运行依然弹出错误,如下所示:

后续有参照了官方给出的各种解决方案,诸如解决方案1:更换dcm4che包中的jai_imageio等jar包解决方案2:安装jai_imageio.jar包解决方案3:更换本地32为JRE环境,于此同时也在本地尝试了最新的dcm4che-3.X版本,但是终究没有解决该问题

解决方案?

通过此次服务端和客户端的测试,可以断定问题出现在jai_imageio.jar包上,因此找到如何能够顺利使用jai_imageio.jar的方法就应该可以解决该问题。
鉴于之前Java的开发经验不足,尤其是Java Image I/O的不了解,因此目前尚未找到dcm4che工具包压缩dcm文件的解决方案,如有博友知道该解决方案,或者对jar_imageio.jar比较熟悉,请邮件联系我,Thanks a lot!

作者:zssure@163.com
时间:2015/07/26

DICOM:dcm4che工具包如何压缩dcm文件探讨(前篇)相关推荐

  1. DICOM:dcm4che工具包如何压缩dcm文件探讨(续篇)

    背景 前段时间博文 DICOM:dcm4che工具包如何压缩dcm文件探讨(前篇)提到了一个问题:"利用dcm4che工具包中的dcm2dcm来进行dcm文件的压缩和加压缩,即改变dcm文件 ...

  2. 基于Excel的标定数据(DCM文件)查询及核对工具

    一.INCA软件是当前主流标定开发软件之一,尤其在动力系统控制器的标定中应用非常广泛. 二.通常标定工程师负责某个/多个软件模块的标定,在完成该模块标定工作后提交该标定数据(DCM文件),而后集成工程 ...

  3. 使用dcm4che对压缩的dcm文件进行解压

    上一篇文章说到了DCM文件的无损压缩 DICOM DCM4CHE影像压缩 本想着压缩了就大功告成 在使用的时候可以大大减少网络上传输的时间 提高网站性能 但是新的问题又出现了 问题如下 代码中获取文件 ...

  4. DICOM笔记-解析JPEG压缩格式DCM文件

      项目中使用了DICOM文件保存图像,之前经常遇到DICOM内放置的是short类型或者float类型的二维图像,按照之前的代码处理JEPG压缩的DICOM文件,当然会出现问题:从网上查到资料,是由 ...

  5. DICOM医学图像处理:DICOM存储操作之“多幅BMP图像数据存入DCM文件”

    背景: 本专栏"DICOM医学图像处理"受众较窄,起初只想作为自己学习积累和工作经验的简单整理.前几天无聊浏览了一下,发现阅读量两极化严重,主要集中在"关于BMP(JPG ...

  6. DICOM医学图像处理:DICOM存储操作之 “多幅JPG图像数据存入DCM文件”

    背景: 续上篇,继续介绍如何将多幅JPG图像数据存入DCM文件.即将有损压缩数据直接写入DCM文件,存储为Multi-frame形式. 多幅JPG图像数据存入DCM文件: 为了避免引起歧义,这里着重说 ...

  7. dicom文件的后缀_dcm文件扩展名,dcm文件怎么打开?

    .dcm 文件类型1:DiskCatalogMaker Catalog File 文件说明:Catalog format used by DiskCatalogMaker, a file catalo ...

  8. java解析dcm文件到jpg

    1,下载源码编译 下载dcm3che源码 mvn install 2,gradle/maven 引用 compile ('org.dcm4che.tool:dcm4che-tool-dcm2jpg:5 ...

  9. java如何压缩html代码,java 压缩html文件

    java 压缩html文件 [2021-02-03 16:32:07]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace("/ ...

最新文章

  1. 初学api测试_面向初学者的API-在此免费视频课程中学习如何使用API
  2. PDF批量替换文字器免费版
  3. 【01背包的k值问题 HDU2639 HDU2126】
  4. 查询前几条记录SQL在不同数据库中的用法
  5. 生日小助手的问答帮助——随时更新,长期有效……
  6. Python 统计一行字符中单词的个数_Python 经典练习题-015
  7. Tomcat Filter 源码分析
  8. Oracle中Decode()函数使用技巧
  9. MySQL清理注册表
  10. javascript权威指南——笔记(第十章:正则)
  11. ASN.1编解码与编程
  12. Mybatis异常There is no getter for property named ‘XXX‘ in ‘class java.lang.String‘
  13. 【java笔记】继承与多态
  14. 2014——我们都任性过
  15. python import自定义模块方法
  16. 爬虫 --- 08. 全站爬取(CrawlSpider), 分布式, 增量式爬虫
  17. solidworks2014方程式添加全局变量存在句法错误的解决方案
  18. C# 中的委托和事件[转自张子扬]
  19. 第七章、绘制3D图表和统计地图
  20. 如何修改excel的修改日期?

热门文章

  1. Exchange绝妙使用-日历、邮件、通讯录双向同步
  2. 从高考到程序员,做自己就好
  3. MySQL报错no connection established
  4. Spring Boot内置Tomcat的静态资源配置(在页面中显示项目外的某个图片)
  5. 【Java多线程并发编程】面试知识点总结
  6. OpenMV色块寻找
  7. Cycle-Consistent Inverse GAN for Text-to-Image Synthesis
  8. c语言顺序选择结构题库,C语言复习题顺序结构
  9. 华硕fx60vm拆机图解_技术编辑处置华硕fx60vm【处理手段】
  10. “人机大战”简单复盘