PURAV PATEL
PURAV PATEL

Reputation: 41

How to load DICOM image in java?

I am developing my application to load image and save dicom image in netbeans platform java i want to load only dicom image using Jfilechooser ,,i developed the application but couldnt load only Dicom image so what should be problem to load dicomimage ,Is there any plugins missing for it? which jar files have to upload for it....? pls share your opinion with me..thans in advance.here i add code which i developed in javaapps...

package opner;

import com.sun.media.jai.widget.DisplayJAI;
import java.awt.*;
import java.awt.event.*;
import java.util.Properties;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import java.util.Properties;
import java.io.*;
import java.net.*;

import java.awt.BorderLayout; 
import java.io.*; 
import javax.imageio.*; 
import java.awt.image.RenderedImage; 
import java.awt.image.renderable.ParameterBlock; 
import java.util.Iterator; 
import javax.imageio.stream.FileImageInputStream; 
import javax.imageio.stream.FileImageOutputStream; 
import javax.media.jai.*; 
import javax.swing.*; 

public class Opner
{
    public static void main(String args[])
    { 
        RenderedImage image = null;     
        RenderedOp result = null;   
        try
        {       
            FileImageInputStream stream = new FileImageInputStream(new File("E:/MAGIX/demo1.dcm")); 
            Iterator iter =ImageIO.getImageReaders(stream); 
            ImageReader reader = (ImageReader)iter.next(); 
            reader.setInput(stream); 

            image = reader.readAsRenderedImage(0,reader.getDefaultReadParam()); 

            double scaleFactor = 0.5; 
            ParameterBlock params = new ParameterBlock(); 
            params.addSource(image); 
            params.add(scaleFactor); 
            //x scale factor 
            params.add(scaleFactor); 
            //y scale factor 
            result = JAI.create("SubsampleAverage", params); 

            Iterator writerIter =ImageIO.getImageWritersByFormatName("dcm"); 
            ImageWriter writer = (ImageWriter)writerIter.next(); 
            FileImageOutputStream os = new FileImageOutputStream(new File("E:/MAGIX/demo1.dcm")); 
            writer.setOutput(os); 
            writer.write(result); 
        }
        catch(IOException e)
        {
            e.printStackTrace();
        } 

        DisplayJAI d = new DisplayJAI(); 
        d.set(result); 
        JScrollPane jsp = new JScrollPane(); 
        jsp.setViewportView(d); 
        JFrame f = new JFrame(); 
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
        f.setLayout(new BorderLayout()); 
        f.add(jsp, BorderLayout.CENTER); 
        f.pack(); 
        f.setVisible(true); 
    } 
} 

Upvotes: 2

Views: 4884

Answers (1)

NimChimpsky
NimChimpsky

Reputation: 47280

Take a look at imagej it is open source and has plugins for dicom sequences and directories.

Upvotes: 1

Related Questions