DICOM:dcm4che工具包如何压缩dcm文件探讨(前篇)
背景:
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文件探讨(前篇)相关推荐
- DICOM:dcm4che工具包如何压缩dcm文件探讨(续篇)
背景 前段时间博文 DICOM:dcm4che工具包如何压缩dcm文件探讨(前篇)提到了一个问题:"利用dcm4che工具包中的dcm2dcm来进行dcm文件的压缩和加压缩,即改变dcm文件 ...
- 基于Excel的标定数据(DCM文件)查询及核对工具
一.INCA软件是当前主流标定开发软件之一,尤其在动力系统控制器的标定中应用非常广泛. 二.通常标定工程师负责某个/多个软件模块的标定,在完成该模块标定工作后提交该标定数据(DCM文件),而后集成工程 ...
- 使用dcm4che对压缩的dcm文件进行解压
上一篇文章说到了DCM文件的无损压缩 DICOM DCM4CHE影像压缩 本想着压缩了就大功告成 在使用的时候可以大大减少网络上传输的时间 提高网站性能 但是新的问题又出现了 问题如下 代码中获取文件 ...
- DICOM笔记-解析JPEG压缩格式DCM文件
项目中使用了DICOM文件保存图像,之前经常遇到DICOM内放置的是short类型或者float类型的二维图像,按照之前的代码处理JEPG压缩的DICOM文件,当然会出现问题:从网上查到资料,是由 ...
- DICOM医学图像处理:DICOM存储操作之“多幅BMP图像数据存入DCM文件”
背景: 本专栏"DICOM医学图像处理"受众较窄,起初只想作为自己学习积累和工作经验的简单整理.前几天无聊浏览了一下,发现阅读量两极化严重,主要集中在"关于BMP(JPG ...
- DICOM医学图像处理:DICOM存储操作之 “多幅JPG图像数据存入DCM文件”
背景: 续上篇,继续介绍如何将多幅JPG图像数据存入DCM文件.即将有损压缩数据直接写入DCM文件,存储为Multi-frame形式. 多幅JPG图像数据存入DCM文件: 为了避免引起歧义,这里着重说 ...
- dicom文件的后缀_dcm文件扩展名,dcm文件怎么打开?
.dcm 文件类型1:DiskCatalogMaker Catalog File 文件说明:Catalog format used by DiskCatalogMaker, a file catalo ...
- java解析dcm文件到jpg
1,下载源码编译 下载dcm3che源码 mvn install 2,gradle/maven 引用 compile ('org.dcm4che.tool:dcm4che-tool-dcm2jpg:5 ...
- java如何压缩html代码,java 压缩html文件
java 压缩html文件 [2021-02-03 16:32:07] 简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace("/ ...
最新文章
- 初学api测试_面向初学者的API-在此免费视频课程中学习如何使用API
- PDF批量替换文字器免费版
- 【01背包的k值问题 HDU2639 HDU2126】
- 查询前几条记录SQL在不同数据库中的用法
- 生日小助手的问答帮助——随时更新,长期有效……
- Python 统计一行字符中单词的个数_Python 经典练习题-015
- Tomcat Filter 源码分析
- Oracle中Decode()函数使用技巧
- MySQL清理注册表
- javascript权威指南——笔记(第十章:正则)
- ASN.1编解码与编程
- Mybatis异常There is no getter for property named ‘XXX‘ in ‘class java.lang.String‘
- 【java笔记】继承与多态
- 2014——我们都任性过
- python import自定义模块方法
- 爬虫 --- 08. 全站爬取(CrawlSpider), 分布式, 增量式爬虫
- solidworks2014方程式添加全局变量存在句法错误的解决方案
- C# 中的委托和事件[转自张子扬]
- 第七章、绘制3D图表和统计地图
- 如何修改excel的修改日期?
热门文章
- Exchange绝妙使用-日历、邮件、通讯录双向同步
- 从高考到程序员,做自己就好
- MySQL报错no connection established
- Spring Boot内置Tomcat的静态资源配置(在页面中显示项目外的某个图片)
- 【Java多线程并发编程】面试知识点总结
- OpenMV色块寻找
- Cycle-Consistent Inverse GAN for Text-to-Image Synthesis
- c语言顺序选择结构题库,C语言复习题顺序结构
- 华硕fx60vm拆机图解_技术编辑处置华硕fx60vm【处理手段】
- “人机大战”简单复盘