当前位置: 首页 > 面试题库 >

如何将dicom文件转换为jpg转换

谷梁淇
2023-03-14
问题内容

如何使用Java将Dicom文件(.dcm)转换为jpeg图像?这是我的代码:

import java.io.File;
import java.io.IOException;
import org.dcm4che2.tool.dcm2jpg.Dcm2Jpg;
public class MainClass {
public static void main(String[] args) throws IOException{
Dcm2Jpg conv = new Dcm2Jpg();
conv.convert(new File("C:\\Users\\lijo.joseph\\Desktop\\Dicom\\IM-0001-0001.dcm"), new File("C:\\Users\\lijo.joseph\\Desktop\\Dicom\\IM-0001-0001.jpg"));
}
}

我在运行项目时遇到以下错误

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/cli/ParseException
at MainClass.main(MainClass.java:7)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.cli.ParseException
at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more

请帮助并提前感谢


问题答案:

这是使用dcm4che 2将DICOM转换为JPEG的链接

以下是我的代码,效果很好,我将其与导入一起放置,因此可能用完了。

import java.awt.image.BufferedImage;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Iterator;
import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
import org.dcm4che2.imageio.plugins.dcm.DicomImageReadParam;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;

public class Examplke1 {

    static BufferedImage myJpegImage=null;

    public static void main(String[] args) {
        File file = new File("test5/12840.dcm");
        Iterator<ImageReader> iterator =ImageIO.getImageReadersByFormatName("DICOM");
        while (iterator.hasNext()) {
            ImageReader imageReader = (ImageReader) iterator.next();
            DicomImageReadParam dicomImageReadParam = (DicomImageReadParam) imageReader.getDefaultReadParam();
            try {
                ImageInputStream iis = ImageIO.createImageInputStream(file);
                imageReader.setInput(iis,false);
                myJpegImage = imageReader.read(0, dicomImageReadParam);
                iis.close();
                if(myJpegImage == null){
                    System.out.println("Could not read image!!");
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            File file2 = new File("/test.jpg");
            try {
                OutputStream outputStream = new BufferedOutputStream(new FileOutputStream(file2));
                JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(outputStream);
                encoder.encode(myJpegImage);
                outputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            System.out.println("Completed");
        }

    }
}

用于运行它的罐子

  1. dcm4che-imageio-2.0.28.jar
  2. dcm4che-image-2.0.28.jar
  3. jai_imageio-1.1.jar
  4. dcm4che-core-2.0.28.jar
  5. slf4j-api-1.7.7.jar
  6. slf4j-log4j12-1.7.7.jar
  7. apache-logging-log4j.jar

希望能帮助到你。



 类似资料:
  • 问题内容: 我可以设置属性并创建dicom文件,但是不能将图像写入dicom文件吗? 问题答案: 我已经尝试过使用拥有的图像并且它可以工作,但是我希望它不适用于RGB图像。像这样的东西 编辑1 我假设您的图片在这里有一个无符号的短数据缓冲区。 要处理其他数据缓冲区,应检查type,相应地进行强制转换,然后转换为字节数组。对于字节缓冲区,应该很容易 然后 您的图片在哪里0 应该返回一个字节数组

  • 本文向大家介绍python 将dicom图片转换成jpg图片的实例,包括了python 将dicom图片转换成jpg图片的实例的使用技巧和注意事项,需要的朋友参考一下 主要原理:调整dicom的窗宽,使之各个像素点上的灰度值缩放至[0,255]范围内。 使用到的python库:SimpleITK 下面是一个将dicom(.dcm)图片转换成jpg图片的demo: 以上这篇python 将dicom

  • 问题内容: 我环顾四周,阅读文档,没有找到任何方法或解决方案,所以我在这里问。是否有可用的软件包可用于使用Python将JPG图像转换为PNG图像? 问题答案: 为此,您始终可以使用Python图像库(PIL)。可能还会有其他包/库,但是我之前曾用过它来在格式之间进行转换。 这适用于Windows下的Python 2.7(适用于Python 2.7的Python Imaging Library 1

  • 我正在尝试在一个新的DICOM项目中使用dcm4che(最近的版本2.0.29)。我在尝试将DICOM文件转换为JPEG时出现以下错误。我找不到包含com.sun.medialib.codec.jpeg.decoder类的jar文件。谁能给我一个主意在哪能找到它? 这里是我的代码: 和控制台输出:

  • 问题内容: 如何在Java中将bmp转换为jpg?我知道如何使用该方法,但是有更快或更更好的方法吗? 这是我在网上找到的ImageIO的处理方式。 如果使用这种方式,我会失去质量吗? 谢谢 问题答案: 是的你将会。实际上,无论将BMP(无损)转换为JPG(有损)的方式如何,始终会失去质量。如果将JPG质量设置为100%(在我看来这违背了目的),则可以限制损坏。 使用本教程修复它。

  • 问题内容: 我将 图片获取 为base64字符串( ) ,下面是将转换为图片的函数, 现在,如果图像为png,则png库将创建图像,而jpg库将引发错误,反之亦然。 问题是当我上传png时效果很好,但是当我 上传jpg文件时 返回此错误 无效的JPEG格式:缺少SOI标记 输入为: 这可能有帮助 问题答案: 您将您的传递给,这开始消耗阅读器,只是发现输入不是有效的PNG,因此返回错误。 然后,将部