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

求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 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出