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

标签 java image jpeg dicom

我们如何使用 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

请帮助并提前致谢

最佳答案

这是链接 Converting DICOM to JPEG using dcm4che 2

以下是我的代码,运行良好。我已将其与导入一起放置,因此它可能会被完全使用。

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");
        }

    }
}

Jars 用于运行它

  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

希望对您有所帮助。

关于java - 如何将dicom文件转换为jpg转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26229758/

相关文章:

java - LinkedHashMap 中的 addbefore 方法如何工作

java - 将图像绑定(bind)到数组值?

ios - 如何从电子邮件或桌面获取图像到 iOS 应用程序?

php - 在使用临时文件夹上传之前调整多个图像大小

c++ - 如何在有和没有 std::vector 的情况下正确使用 jpeg_mem_dest

java - 在 Android 中设置 jpeg 文件的 DPI 元信息

python - 使用 PIL 将 RGBA PNG 转换为 RGB

java - 如何知道一个国家/地区是否存在夏令时?

java - 使字符串具有相等的长度

java - 使用不带replaceAll()的循环打印不带元音的UI; java 语