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