2015-01-06 5 views
1

Java에서 압축 된 DICOM 파일을 읽을 수있는 방법을 찾고 있습니다. DICOM은 Jpeg2000을 사용하여 압축됩니다. Java 고급 이미지 IO에는 MAC OS에서 라이브러리가 없으므로 DCM4CHE를 사용하는 데 문제가 있습니다. ImageJ는 압축 된 DICOM 파일도 지원하지 않습니다. 압축 된 DICOM 파일을 읽는 방법

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

위의 코드

는 압축되지 않은 DICOMs와 함께 작동하지만 압축 DICOMs으로 다음과 같은 오류 제공 : 어떤 권고를 감상 할 수있다

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) 

합니다.

답변

1

GDCM/java 바인딩을 사용할 수 있습니다. 참고로 다음 example을 참조하십시오.

관련 문제