1 /*========================================================================= 2 3 Program: GDCM (Grassroots DICOM). A DICOM library 4 5 Copyright (c) 2006-2011 Mathieu Malaterre 6 All rights reserved. 7 See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details. 8 9 This software is distributed WITHOUT ANY WARRANTY; without even 10 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 11 PURPOSE. See the above copyright notice for more information. 12 13 =========================================================================*/ 14 // We are required to call the package 'vtk' eventhough I (MM) would have prefered 15 // an import statement along the line of: 16 // import vtkgdcm.*; 17 import vtk.*; 18 19 /* 20 * Usage: 21 * export LD_LIBRARY_PATH=/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/xawt:. 22 * java -classpath `pwd`/vtkgdcm.jar:/usr/share/java/vtk.jar:. ReadSeriesIntoVTK 23 */ 24 public class ReadSeriesIntoVTK 25 { 26 static { 27 System.loadLibrary("vtkCommonJava"); 28 System.loadLibrary("vtkFilteringJava"); 29 System.loadLibrary("vtkIOJava"); 30 System.loadLibrary("vtkImagingJava"); 31 System.loadLibrary("vtkGraphicsJava"); 32 System.loadLibrary("vtkgdcmJava"); 33 try { 34 System.loadLibrary("vtkRenderingJava"); 35 } catch (Throwable e) { 36 System.out.println("cannot load vtkHybrid, skipping..."); 37 } 38 try { 39 System.loadLibrary("vtkHybridJava"); 40 } catch (Throwable e) { 41 System.out.println("cannot load vtkHybrid, skipping..."); 42 } 43 try { 44 System.loadLibrary("vtkVolumeRenderingJava"); 45 } catch (Throwable e) { 46 System.out.println("cannot load vtkVolumeRendering, skipping..."); 47 } 48 } 49 main(String[] args)50 public static void main(String[] args) 51 { 52 vtkFileOutputWindow outWin = new vtkFileOutputWindow(); 53 outWin.SetInstance(outWin); 54 outWin.SetFileName("MVSVTKViewer.log"); 55 56 // See: http://review.source.kitware.com/#change,888 57 // vtkWrapJava does not handle static keyword 58 // String directory = vtkGDCMTesting.GetGDCMDataRoot(); 59 vtkGDCMTesting t = new vtkGDCMTesting(); 60 String directory = t.GetGDCMDataRoot(); 61 String file0 = directory + "/SIEMENS_MAGNETOM-12-MONO2-FileSeq0.dcm"; 62 String file1 = directory + "/SIEMENS_MAGNETOM-12-MONO2-FileSeq1.dcm"; 63 String file2 = directory + "/SIEMENS_MAGNETOM-12-MONO2-FileSeq2.dcm"; 64 String file3 = directory + "/SIEMENS_MAGNETOM-12-MONO2-FileSeq3.dcm"; 65 66 vtkStringArray s = new vtkStringArray(); 67 System.out.println("adding : " + file0 ); 68 s.InsertNextValue( file0 ); 69 s.InsertNextValue( file1 ); 70 s.InsertNextValue( file2 ); 71 s.InsertNextValue( file3 ); 72 73 vtkGDCMImageReader reader = new vtkGDCMImageReader(); 74 reader.SetFileNames( s ); 75 reader.Update(); 76 77 System.out.println("Success reading: " + file0 ); 78 79 vtkMetaImageWriter writer = new vtkMetaImageWriter(); 80 writer.DebugOn(); 81 writer.SetCompression( false ); 82 writer.SetInputConnection( reader.GetOutputPort() ); 83 writer.SetFileName( "ReadSeriesIntoVTK.mhd" ); 84 writer.Write(); 85 86 System.out.println("Success writing: " + writer.GetFileName() ); 87 } 88 } 89