2

以下のコードのようにimageioを使用してjpeg2000でDICOM画像を変換しようとしています。同じ手順がOracleのドキュメントで説明されていますが、機能しません。何が間違っているのかわかりません。Java Advanced Image I/OライブラリがJREにインストールされます。

使用: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();
    }
}
4

1 に答える 1

1

私の知る限り、JAI Image IO は DICOM をサポートしていませんが、JPEG2000 をサポートしています。Windows 64 ビット バージョンの JAI は存在しないことに注意してください (これも問題になる可能性があります)。エラーが発生していないことに驚いています。

ただし、DICOM を変換するための最善の方法はツールキットを使用することであるという Anders の意見に同意します。DCM4CHE2 ( http://www.dcm4che.org/confluence/display/d2/dcm4che2+DICOM+Toolkit ) をお勧めします。彼らには、あなたが提案していることを正確に実行するためのコマンドラインツールがいくつかあり、DICOM を読み書きするための Dicom[Input/Output]Stream クラスがあります。

于 2013-01-24T21:15:00.240 に答える