java解析dcm文件到jpg

编程入门 行业动态 更新时间:2024-10-12 10:28:09

java解析dcm<a href=https://www.elefans.com/category/jswz/34/1771438.html style=文件到jpg"/>

java解析dcm文件到jpg

1,下载源码编译

下载dcm3che源码

mvn install

2,gradle/maven 引用

compile ('org.dcm4che.tool:dcm4che-tool-dcm2jpg:5.20.0'){exclude group: 'org.slf4j',module: 'slf4j-log4j12'}

3,编写工具类 


import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
import org.dcm4che3.data.Attributes;
import org.dcm4che3.imageio.plugins.dcm.DicomImageReadParam;import javax.imageio.ImageIO;
import javax.imageio.ImageReadParam;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;/*** dcm转jpg工具** @author zhy*/
@Setter
@Slf4j
public class Dcm2jpgUtil {private final ImageReader imageReader = ImageIO.getImageReadersByFormatName("DICOM").next();private float windowCenter;private float windowWidth;private boolean autoWindowing = true;private int windowIndex;private int voiLutIndex;private boolean preferWindow = true;private Attributes prState;private int overlayActivationMask = 0xffff;private int overlayGrayscaleValue = 0xffff;private int frame = 1;/*** 解析dcm获取图片并上传oss** @param src  dcm文件流* @param name oss的getFileName*/public void convert(InputStream src, String name) {Iterator<ImageReader> iter = ImageIO.getImageReadersByFormatName("DICOM");ImageReader reader = iter.next();try (ImageInputStream iis = ImageIO.createImageInputStream(src)) {reader.setInput(iis, false);BufferedImage bi = readImage(iis);if (bi == null) {throw new 自定义异常("无法读取到图片");}ByteArrayOutputStream os = new ByteArrayOutputStream();ImageIO.write(bi, "jpg", os);//上传到ossOssUtil.uploadByInputStream(new ByteArrayInputStream(os.toByteArray()), name);} catch (IOException e) {log.error(e.getMessage(), e);}}private ImageReadParam readParam() {DicomImageReadParam param = (DicomImageReadParam) imageReader.getDefaultReadParam();param.setWindowCenter(windowCenter);param.setWindowWidth(windowWidth);param.setAutoWindowing(autoWindowing);param.setWindowIndex(windowIndex);param.setVOILUTIndex(voiLutIndex);param.setPreferWindow(preferWindow);param.setPresentationState(prState);param.setOverlayActivationMask(overlayActivationMask);param.setOverlayGrayscaleValue(overlayGrayscaleValue);return param;}private BufferedImage readImage(ImageInputStream iis) throws IOException {imageReader.setInput(iis);return imageReader.read(frame - 1, readParam());}
}

 

源码中的opencv依赖

 可以在github中下载

windows|linux

更多推荐

java解析dcm文件到jpg

本文发布于:2023-06-26 04:19:57,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/889190.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:文件   java   dcm   jpg

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!