Need help for Dicom image compression using dcm4che in java

523 views
Skip to first unread message

Vinayak Gaikwad

unread,
Jan 17, 2017, 1:59:30 AM1/17/17
to dcm4che

hello,
i am vinayak ,
I am working on image compression of dicom images,for that i using dcm4che library.

in below code i have created dicom reader. to read dicom file. i got reader successfully .

String resource="D:\\CT_Head_Facial Bone 3D\\IM1";
DicomImageReader reader =  createImageReader(resource);
BufferedImage bi = readRawBufferedImage(reader, 1);
DicomStreamMetaData newMeta = copyMeta(reader, UID.JPEG2000LosslessOnly);
IIOImage iioimage = new IIOImage(bi, null, null);e here...

but at the time of writing image in to writer, 



ImageWriter writer = new DicomImageWriterSpi().createWriterInstance();
//ImageWriter imageWriterFactory=ImageWriterFactory.getInstance().getWriterForTransferSyntax("1.2.840.10008.1.2.4.90");
writer.setOutput(imageOutput);
writer.write(newMeta, iioimage, null);
writer.prepareWriteSequence(newMeta);
writer.writeToSequence(iioimage,null);



It showing error.

I have included all library dcm4che, jai image, jai_codec ,jai_core.

org.dcm4che2.data.ConfigurationError: No Image Writer of class com.sun.media.imageioimpl.plugins.jpeg2000.J2KImageWriterCodecLib available for format:jpeg2000
at org.dcm4che2.imageio.ImageWriterFactory.getWriterForTransferSyntax(ImageWriterFactory.java:94)
at org.dcm4che2.imageioimpl.plugins.dcm.DicomImageWriter.setupWriter(DicomImageWriter.java:219)
at org.dcm4che2.imageioimpl.plugins.dcm.DicomImageWriter.prepareWriteSequence(DicomImageWriter.java:247)
at org.dcm4che2.imageioimpl.plugins.dcm.DicomImageWriter.write(DicomImageWriter.java:192)
at Compress.DicomImageWriterTest.testSingleFrameLossless(DicomImageWriterTest.java:88)
at Compress.DicomImageWriterTest.main(DicomImageWriterTest.java:230)

Dimitri Pianeta

unread,
Jan 17, 2017, 5:34:49 PM1/17/17
to dcm...@googlegroups.com
For resolve problem jpeg2000 use dcm4che3 version 3.3.8.
My code for display image in dcm4che3 is folllowing :


public BufferedImage readImage(  File input, int index) throws IOException{

     
Iterator<ImageReader> iter = ImageIO.getImageReadersByFormatName("DICOM");
   
DicomImageReader readers = (DicomImageReader) iter.next();
   
   
   
     
DicomImageReadParam   param1 =  (DicomImageReadParam) readers.getDefaultReadParam();
     
     
     
ImageInputStream iis = ImageIO.createImageInputStream(input);

             readers
.setInput(iis, false);
     
  
    BufferedImage image =readers.read(index,param1);
   readers
.dispose();
   
return image;
}


Reply all
Reply to author
Forward
0 new messages