2

我正在开发我的应用程序以在netbeans平台java中加载图像并保存dicom图像我想使用Jfilechooser仅加载dicom图像,我开发了应用程序但无法仅加载Dicom图像所以加载dicomimage应该是什么问题,是否有任何插件想念它吗?必须为它上传哪些 jar 文件....?请提前与我分享您的意见。在这里我添加了我在 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); 
    } 
} 
4

1 回答 1

1

看看imagej,它是开源的,并且有用于 dicom 序列和目录的插件。

于 2012-04-24T08:21:56.870 回答