Java 获取ImageReader解析DICOM图像时出错

Java 获取ImageReader解析DICOM图像时出错,java,dicom,Java,Dicom,我尝试实现一段示例代码,以从DICOM对象获取图像: import java.awt.image.BufferedImage; import java.io.BufferedOutputStream; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.Iterator; import javax.imagei

我尝试实现一段示例代码,以从DICOM对象获取图像:

import java.awt.image.BufferedImage;
import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Iterator;
import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
import org.dcm4che2.data.DicomObject;
import org.dcm4che2.imageio.plugins.dcm.DicomImageReadParam;
import org.dcm4che2.io.DicomOutputStream;

....

public static BufferedImage getPixelDataAsBufferedImage(byte[] dicomData)
        throws IOException {
    ByteArrayInputStream bais = new ByteArrayInputStream(dicomData);
    BufferedImage buff = null;
    Iterator<ImageReader> iter = ImageIO.getImageReadersByFormatName("DICOM");
    ImageReader reader = (ImageReader) iter.next();
    DicomImageReadParam param = (DicomImageReadParam) reader.getDefaultReadParam();
    ImageInputStream iis = ImageIO.createImageInputStream(bais);
    reader.setInput(iis, false);
    buff = reader.read(0, param);
    iis.close();
    if (buff == null) {
        throw new IOException("Could not read Dicom file. Maybe pixel data is invalid.");
    }
    return buff;
}

有人知道怎么回事吗???我在Windows7 64上使用JDK7 64

给定的异常表明您在运行时依赖Java高级映像(JAI)。您需要标准JDK未提供的其他JAR

以下是JAI和JAI ImageIO工具的安装说明:


您可以在此处下载安装程序:


安装JAI后,需要在项目类路径中包含提取的JAR

专家 如果使用Maven,JAI和JAI ImageIO工具可以在没有安装程序的情况下用于您的项目:

<dependency>
    <groupId>com.sun.media</groupId>
    <artifactId>jai_imageio</artifactId>
    <version>1.1</version>
</dependency>

com.sun.media
jai_imageio
1.1

您是否在Java项目中使用Maven?我在NetBeans 7.xThanks中推荐了JavaProject-我下载了jai-1_1_3-lib-windows-i586-jdk,但当我尝试安装它时,出现了类似“需要jdk 1.3或更高版本”的错误。怎么了???我已经安装了jai-1_1_3-lib-windows-i586,并将安装了jai:jai_编解码器、jai_core和mlibwrapper的3个JAR添加到我的项目库中,但它并没有解决我的问题-我仍然有例外。任何想法…感谢更新工作解决方案。我将添加一个链接到
jai_imageio.jar
下载。
<dependency>
    <groupId>com.sun.media</groupId>
    <artifactId>jai_imageio</artifactId>
    <version>1.1</version>
</dependency>