2012-04-24 93 views
2

我正在开发我的应用程序来加载图像,并保存在NetBeans平台的dicom图像java 我想只加载dicom图像使用Jfilechooser,我开发的应用程序,但不能加载只有Dicom图像所以应该是什么问题加载dicomimage,是有没有插件失踪?哪些jar文件必须上传....?请分享在advance.here me..thans您的意见我加入,我在javaapps开发的代码...如何在Java中加载DICOM图像?

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); 
    } 
} 

回答

1

看看imagej它是开源的,并具有DICOM序列和目录插件。

+0

thans回复,但我不想使用imagej ...没有imagej ..它是另一种方式来加载图像? – 2012-04-24 08:26:16

+1

多数民众赞成在很大程度上。祝贺。你想分享你的代码吗?你是怎么做到的? – bilalhaider 2013-06-30 10:11:47