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)
합니다.