简体   繁体   中英

How to read compressed DICOM files

I am looking for a way to read compressed DICOM files in Java. The DICOMs are compressed using Jpeg2000. Java advanced image IO doen't have libraries in MAC OS so I have trouble using DCM4CHE which uses that. ImageJ also doesn't support compressed DICOM files.

File myDicomFile = new File("IM-0001-0001.dcm");
    try {
        DicomInputStream dis = new DicomInputStream(myDicomFile);
        Iterator<ImageReader> iter = ImageIO.getImageReadersByFormatName("DICOM");
        ImageReader reader = (ImageReader) iter.next();
        DicomImageReadParam param = (DicomImageReadParam) reader.getDefaultReadParam();
        ImageInputStream iis = ImageIO.createImageInputStream(myDicomFile);
        reader.setInput(iis, false);
        BufferedImage bi = reader.read(0, param);

        File myJpegFile = new File("IM-0001-0001.jpg");
        OutputStream output = new BufferedOutputStream(new FileOutputStream(myJpegFile));
        JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(output);
        encoder.encode(bi);
        output.close();
    } catch (Exception e) {
        System.out.println(e.getStackTrace());
    }

The above code works with uncompressed DICOMs but with compressed DICOMs it gives the following error:

Exception in thread "main" java.lang.UnsatisfiedLinkError: com.sun.medialib.codec.jp2k.Decoder.decode_init(Ljavax/imageio/stream/ImageInputStream;J)J
at com.sun.medialib.codec.jp2k.Decoder.decode_init(Native Method)
at com.sun.medialib.codec.jp2k.Decoder.<init>(Decoder.java:53)
at com.sun.media.imageioimpl.plugins.jpeg2000.J2KRenderedImageCodecLib.<init>(J2KRenderedImageCodecLib.java:158)
at com.sun.media.imageioimpl.plugins.jpeg2000.J2KImageReaderCodecLib.read(J2KImageReaderCodecLib.java:367)
at org.dcm4che3.imageio.plugins.dcm.DicomImageReader.read(DicomImageReader.java:284)
at Main.main(Main.java:31)

Any recommendation would be appreciated.

You could use the GDCM / java binding. See the following example for reference.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM