2

イメージをロードし、Netbeans プラットフォーム Java で dicom イメージを保存するアプリケーションを開発しています。Jfilechooser を使用して dicom イメージのみをロードしたいのですが、アプリケーションを開発しましたが、Dicom イメージのみをロードできませんでした。それが足りない?どのjarファイルをアップロードする必要がありますか....?plsは私とあなたの意見を共有します..事前に感謝します.ここに私が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 に答える