public static int Main(string[] args) { string VTK_DATA_ROOT = vtkGDCMTesting.GetVTKDataRoot(); vtkVolume16Reader reader = vtkVolume16Reader.New(); reader.SetDataDimensions(64, 64); reader.SetDataByteOrderToLittleEndian(); reader.SetFilePrefix(VTK_DATA_ROOT + "/Data/headsq/quarter"); reader.SetImageRange(1, 93); reader.SetDataSpacing(3.2, 3.2, 1.5); vtkImageCast cast = vtkImageCast.New(); cast.SetInput(reader.GetOutput()); cast.SetOutputScalarTypeToUnsignedChar(); // By default this is creating a Multiframe Grayscale Word Secondary Capture Image Storage vtkGDCMImageWriter writer = vtkGDCMImageWriter.New(); writer.SetFileName("headsq.dcm"); writer.SetInput(reader.GetOutput()); // cast -> Multiframe Grayscale Byte Secondary Capture Image Storage // writer.SetInput( cast.GetOutput() ); writer.SetFileDimensionality(3); writer.Write(); return(0); }
public static int Main(string[] args) { string filename = args[0]; string outfilename = args[1]; string outfilename2 = args[2]; vtkGDCMImageReader reader = new Kitware.VTK.GDCM.vtkGDCMImageReader(); reader.SetFileName( filename ); // When calling multiple times creation of C# object from the same C++ object it triggers a: //error: potential refcounting error: Duplicate rawCppThis - weak reference that is still alive. Attempting to add '0x00b2dc10' again. // Allowing new wrapped object to take over table key... // Original object should *not* have been destroyed while we still had it in our table without notifying us... //reader.GetOutput(); //reader.GetOutput(); System.Console.WriteLine( reader.ToString() ); // Test the ToString compat with Activiz vtkGDCMImageWriter writer = new vtkGDCMImageWriter(); writer.SetInput( reader.GetOutput() ); writer.SetFileName( outfilename2 ); writer.Write(); System.Console.WriteLine( reader.GetOutput().ToString() ); // Test the ToString compat with Activiz System.Console.WriteLine( writer.ToString() ); // Test the ToString compat with Activiz vtkPNGWriter pngwriter = new vtkPNGWriter(); pngwriter.SetInput( reader.GetOutput() ); pngwriter.SetFileName( outfilename ); pngwriter.Write(); // at that point the .Write() should have triggered an Update() on the reader: if( reader.GetImageFormat() == vtkgdcm.VTK_LUMINANCE ) // MONOCHROME2 { System.Console.WriteLine( "Image is MONOCHROME2" ); // } vtkPNGReader bmpreader = new vtkPNGReader(); bmpreader.SetFileName( outfilename ); vtkMedicalImageProperties prop = new vtkMedicalImageProperties(); prop.SetModality( "MR" ); vtkMatrix4x4 dircos = reader.GetDirectionCosines(); dircos.Invert(); vtkGDCMImageWriter writer2 = new vtkGDCMImageWriter(); writer2.SetFileName( outfilename2 ); writer2.SetDirectionCosines( dircos ); writer2.SetMedicalImageProperties( prop ); writer2.SetInput( bmpreader.GetOutput() ); writer2.Write(); return 0; }
public static int Main(string[] args) { string filename = args[0]; string outfilename = args[1]; // Step 1. Test SWIG -> Activiz vtkGDCMImageReader reader = vtkGDCMImageReader.New(); reader.SetFileName(filename); //reader.Update(); // DO NOT call Update to check pipeline execution Kitware.VTK.vtkImageData imgout = ConnectSWIGToActiviz(reader.GetOutput()); System.Console.WriteLine(imgout.ToString()); // not initialized as expected vtkPNGWriter writer = new vtkPNGWriter(); writer.SetInput(imgout); writer.SetFileName(outfilename); writer.Write(); // Step 2. Test Activiz -> SWIG vtkPNGReader bmpreader = new vtkPNGReader(); bmpreader.SetFileName(outfilename); //bmpreader.Update(); // DO NOT update to check pipeline execution System.Console.WriteLine(bmpreader.GetOutput().ToString()); // not initialized as expected vtkgdcm.vtkImageData imgout2 = ConnectActivizToSWIG(bmpreader.GetOutput()); System.Console.WriteLine(imgout2.ToString()); // not initialized as expected Kitware.VTK.vtkMedicalImageProperties prop = new Kitware.VTK.vtkMedicalImageProperties(); prop.SetModality("MR"); string outfilename2 = args[2]; vtkGDCMImageWriter writer2 = vtkGDCMImageWriter.New(); writer2.SetMedicalImageProperties(prop.CastToActiviz()); writer2.SetFileName(outfilename2); writer2.SetInput(imgout2); writer2.Write(); return(0); }
public static int Main(string[] args) { string filename = args[0]; vtkGDCMImageReader reader = vtkGDCMImageReader.New(); reader.SetFileName(filename); reader.Update(); vtkMedicalImageProperties prop = reader.GetMedicalImageProperties(); System.Console.WriteLine(prop.GetPatientName()); // if (reader.GetImageFormat() == vtkgdcm.vtkgdcm.VTK_LUMINANCE) // MONOCHROME2 { System.Console.WriteLine("Image is MONOCHROME2"); // } // Just for fun, invert the direction cosines, output should reflect that: vtkMatrix4x4 dircos = reader.GetDirectionCosines(); dircos.Invert(); string outfilename = args[1]; vtkGDCMImageWriter writer = vtkGDCMImageWriter.New(); writer.SetMedicalImageProperties(reader.GetMedicalImageProperties()); writer.SetDirectionCosines(dircos); writer.SetShift(reader.GetShift()); writer.SetScale(reader.GetScale()); writer.SetImageFormat(reader.GetImageFormat()); writer.SetFileName(outfilename); //writer.SetInputConnection( reader.GetOutputPort() ); // new writer.SetInput(reader.GetOutput()); // old writer.Write(); return(0); }
public static int Main(string[] args) { string filename = args[0]; string outfilename = args[1]; string outfilename2 = args[2]; vtkgdcm.vtkGDCMImageReader reader = new vtkgdcm.vtkGDCMImageReader(); reader.SetFileName(filename); // When calling multiple times creation of C# object from the same C++ object it triggers a: //error: potential refcounting error: Duplicate rawCppThis - weak reference that is still alive. Attempting to add '0x00b2dc10' again. // Allowing new wrapped object to take over table key... // Original object should *not* have been destroyed while we still had it in our table without notifying us... //reader.GetOutput(); //reader.GetOutput(); System.Console.WriteLine(reader.ToString()); // Test the ToString compat with Activiz vtkGDCMImageWriter writer = new vtkGDCMImageWriter(); writer.SetInput(reader.GetOutput()); writer.SetFileName(outfilename2); writer.Write(); System.Console.WriteLine(reader.GetOutput().ToString()); // Test the ToString compat with Activiz System.Console.WriteLine(writer.ToString()); // Test the ToString compat with Activiz vtkPNGWriter pngwriter = new vtkPNGWriter(); pngwriter.SetInput(reader.GetOutput()); pngwriter.SetFileName(outfilename); pngwriter.Write(); // at that point the .Write() should have triggered an Update() on the reader: if (reader.GetImageFormat() == vtkgdcm.vtkgdcm.VTK_LUMINANCE) // MONOCHROME2 { System.Console.WriteLine("Image is MONOCHROME2"); // } vtkPNGReader bmpreader = new vtkPNGReader(); bmpreader.SetFileName(outfilename); vtkMedicalImageProperties prop = new vtkMedicalImageProperties(); prop.SetModality("MR"); vtkMatrix4x4 dircos = reader.GetDirectionCosines(); dircos.Invert(); vtkGDCMImageWriter writer2 = new vtkGDCMImageWriter(); writer2.SetFileName(outfilename2); writer2.SetDirectionCosines(dircos); writer2.SetMedicalImageProperties(prop); writer2.SetInput(bmpreader.GetOutput()); writer2.Write(); return(0); }