Angel骷髅 2019-12-16 12:44 采纳率: 0%
浏览 660
已结题

求java代码实现把dcm文件里面的图像信息替换成png或jpg的图像信息,注意是生成一个新的dcm文件,只是修改dcm里面的图像信息,不是要把dcm转成png或者jpg

最近研究dcm文件重新生成一个新的dcm文件,替换掉里面的图像信息,但一直无法突破。
替换原dcm里的图像信息,比如把a.dcm里面的图像信息替换成a.png图像信息
希望能有大神帮忙解决一下。
谢谢

前提:
原片a.dcm 和一张风景图片a.png
结果:
生成一张b.dcm 把a.dcm的图像信息换成a.png的图像信息,其它病人信息不变

  • 写回答

1条回答 默认 最新

  • dabocaiqq 2019-12-17 00:18
    关注
    package com.example;
    
    import java.awt.image.BufferedImage;
    import java.io.File;
    
    import javax.imageio.ImageIO;
    
    import ij.plugin.DICOM;
    
    /**
     * dicom文件java解析,生成图片
     * 不过这里不能解析压缩的dicom文件
     */
    public class ImageDemo {
    
        public static void main(String args[]) {
    //        create("test1.dcm");    //在本地目录生成test1.dcm.jpg图片文件
            create2("D:\\dicom\\test3.dcm");   //在电脑dicom文件夹下生成test1.dcm.jpg图片文件
    
        }
    
    
        /**
         * 根据dicom文件生成jpg图片
         * <p/>
         * 这里输入的是image文件夹的dicom文件名字,
         * 运行即可得到一个jpg图片,显示的是dicom里面的图形
         */
        private static void create(String fileName) {
            try {
                String projectPath = System.getProperty("user.dir");
                //Check class DICOM
                DICOM dicom = new DICOM();
                String imagePath = projectPath + "\\image\\" + fileName;
                dicom.run(imagePath);
                BufferedImage bi = (BufferedImage) dicom.getImage();
                int width = bi.getWidth();
                int height = dicom.getHeight();
                System.out.println("width: " + width + "\n" + "height: " + height);
                imagePath = projectPath + "\\image\\" + fileName + ".jpg";
                ImageIO.write(bi, "jpg", new File(imagePath));
                System.out.println("Hehe,Game over!!!");
    
            } catch (Exception e) {
                System.out.println("错误" + e.getMessage());
            }
    
        }
    
    
        /**
         * 输入一个dicom文件的绝对路径和名字
         * 获取一个jpg文件
         */
        private static void create2(String filePath) {
            try {
                DICOM dicom = new DICOM();
                dicom.run(filePath);
                BufferedImage bi = (BufferedImage) dicom.getImage();
                int width = bi.getWidth();
                int height = dicom.getHeight();
                System.out.println("width: " + width + "\n" + "height: " + height);
                String imagePath = filePath + ".jpg";
                ImageIO.write(bi, "jpg", new File(imagePath));
                System.out.println("Hehe,Game over!!!");
    
            } catch (Exception e) {
                System.out.println("错误" + e.getMessage());
            }
    
        }
    
    
    }
    
    

    https://blog.csdn.net/wxx_csdn/article/details/90715844

    评论

报告相同问题?

悬赏问题

  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用