2012-09-23 5 views
2

imageio를 사용하여 jpeg2000의 DICOM 이미지를 아래 코드와 같이 변환하려고합니다. 동일한 절차가 Oracle 설명서에 설명되어 있지만 작동하지 않습니다! 나는 내가 뭘 잘못하고 있는지 이해하지 못한다. Java 고급 이미지 I/O 라이브러리는 JRE에 설치됩니다.imageio를 사용하여 jpeg2000을 쓰는 데 문제가 있습니다.

사용 : ImageIO.getReaderFormatNames()ImageIO.getWriterFormatNames() DICOM 및 JPEG2000이 지원되는지 확인할 수 있습니다!

오류는 발생하지 않지만 파일을 쓰는 데 너무 오래 걸리고 출력 파일이 손상됩니다.

public void convert2JPEG(File sourceFileName) throws IOException{ 

    Iterator<ImageReader> iter = ImageIO.getImageReadersByFormatName("DICOM"); 
    ImageReader reader = iter.next(); 

    if(reader == null) { 
     log.error("Could not locate any Readers for the DICOM format image."); 
     return; 
    } 

    File sourceFile = new File (sourceFileName); 
    ImageInputStream iis = ImageIO.createImageInputStream(sourceFile); 
    BufferedImage bi; 
    try{ 
    bi = ImageIO.read(iis); 
     File outputFile = new File("outputFileName"); 
    String format = "jpeg 2000"; 
    ImageIO.write(bi, format, outputFile); 
    } catch(Exception e){ 
     log.info("ERROR: " + e); 
    }finally { 
     iis.close(); 
    } 
} 
+0

Java SE 7에서 지원되는 이미지 형식은 JPEG, PNG, GIF 및 (W) BMP ('ImageIO.getReader/WriterFormatNames() '호출시 가져온 것으로 나타남). _DICOM_ 및 _JPEG2000_가 지원된다는 결론에 도달했는지 설명해주십시오. –

+1

@AndersGustafsson : 질문자가 Java 고급 이미지 I/O 라이브러리를 설치했다고 생각합니다. TIFF 및 JPEG2000을 읽고 쓸 수있는 기능이 추가되었지만 DICOM에 대해서는 잘 모르겠습니다. –

+0

@LukeWoodward 설명해 주셔서 감사합니다. 일반적으로 이러한 유형의 변환을 용이하게하기 위해 DICOM 툴킷 사용을 권장합니다. David Clunie의 오픈 소스 [Pixelmed] (http://www.pixelmed.com/index.html#PixelMedJavaDICOMToolkit) Java DICOM Toolkit은 JPEG2000 형식으로 이미지를 쓸 수 있다고 생각합니다. –

답변

1

JAI 이미지 IO 내 지식 DICOM을 지원하지 않습니다 ... 사전에 감사하지만, JPEG2000을 지원합니다. JAI의 Windows 64 비트 버전이 없다는 점에 유의하십시오 (문제가 될 수 있음). 나는 어떤 종류의 오류도주지 않는다고 놀랍다.

그러나 DICOM을 변환하는 가장 좋은 방법은 툴킷을 사용하는 것입니다. DCM4CHE2 (http://www.dcm4che.org/confluence/display/d2/dcm4che2+DICOM+Toolkit)를 제안합니다. DICOM은 DICOM을 읽고 쓰는 데 쓰이는 Dicom [Input/Output] Stream 클래스입니다.

관련 문제