コード例 #1
0
        public static void vtkMetaImageReaderMhdData(string fileName, string oldBitmapPath)
        {
            vtkMetaImageReader reader = new vtkMetaImageReader();

            reader.SetFileName(fileName);
            reader.Update();

            //vtkImageCast imageCast = new vtkImageCast();
            //imageCast.SetInputConnection(reader.GetOutputPort());
            //imageCast.SetOutputScalarTypeToUnsignedChar();
            //imageCast.Update();

            Console.WriteLine(reader.GetFilePrefix());
            if (!Directory.Exists(oldBitmapPath))
            {
                Directory.CreateDirectory(oldBitmapPath);
            }
            vtkBMPWriter write = new vtkBMPWriter();

            write.SetFilePrefix(oldBitmapPath + "\\");
            write.SetFilePattern("%s%d.bmp");
            write.SetInputConnection(reader.GetOutputPort());
            write.Write();

            //Process.Start(oldBitmapPath);
        }
コード例 #2
0
        private void ReadMetaImage()
        {
            // Path to vtk data must be set as an environment variable
            // VTK_DATA_ROOT = "C:\VTK\vtkdata-5.8.0"
            vtkTesting test     = vtkTesting.New();
            string     root     = test.GetDataRoot();
            string     filePath = System.IO.Path.Combine(root, @"Data\foot\foot.mha");

            vtkMetaImageReader reader = vtkMetaImageReader.New();

            if (reader.CanReadFile(filePath) == 0)
            {
                MessageBox.Show("Cannot read file \"" + filePath + "\"", "Error", MessageBoxButtons.OK);
                return;
            }
            reader.SetFileName(filePath);
            reader.Update();
            vtkImageActor actor = vtkImageActor.New();

            actor.SetInput(reader.GetOutput());

            // Visualize
            vtkRenderWindow renderWindow = renderWindowControl1.RenderWindow;
            // renderer
            vtkRenderer renderer = renderWindow.GetRenderers().GetFirstRenderer();

            // set background color
            renderer.SetBackground(0.2, 0.3, 0.4);
            renderer.AddActor(actor);
        }
コード例 #3
0
        public static vtkImageData ReadMetaImage(this string mhdFileName)
        {
            GC.Collect(GC.MaxGeneration, GCCollectionMode.Forced);
            Stopwatch sw = Stopwatch.StartNew();

            File.ReadAllBytes(mhdFileName);
            if (File.Exists(mhdFileName.ReplaceFileName("i.raw")))
            {
                File.ReadAllBytes(mhdFileName.ReplaceFileName("i.raw"));
            }
            if (File.Exists(mhdFileName.ReplaceFileName("i.zraw")))
            {
                File.ReadAllBytes(mhdFileName.ReplaceFileName("i.zraw"));
            }

            vtkMetaImageReader metaImageReader = vtkMetaImageReader.New();

            metaImageReader.SetFileName(mhdFileName);
            metaImageReader.Update();

            vtkImageData readMetaImage = metaImageReader.GetOutput();

            metaImageReader.Dispose();
            metaImageReader = null;

            sw.Stop();
            //Console.WriteLine("Read {0} took {1} ms.", mhdFileName, sw.ElapsedMilliseconds);

            return(readMetaImage);
        }
コード例 #4
0
        public static vtkImageData ReadMetaImageData(string filePath)
        {
            vtkMetaImageReader reader = new vtkMetaImageReader();

            reader.SetFileName(filePath);

            reader.Update();

            vtkImageData imagedata = reader.GetOutput();

            reader.Dispose();

            return(imagedata);
        }
コード例 #5
0
        private void WriteMetaImage()
        {
            // Path to vtk data must be set as an environment variable
            // VTK_DATA_ROOT = "C:\VTK\vtkdata-5.8.0"
            vtkTesting test        = vtkTesting.New();
            string     root        = test.GetDataRoot();
            string     filePath    = System.IO.Path.Combine(root, @"Data\test_mha.mhd");
            string     filePathRaw = System.IO.Path.Combine(root, @"Data\test_mha.raw");
            // Create an image
            vtkImageMandelbrotSource source = vtkImageMandelbrotSource.New();

            source.Update();

            vtkImageCast castFilter = vtkImageCast.New();

            castFilter.SetOutputScalarTypeToUnsignedChar();
            castFilter.SetInputConnection(source.GetOutputPort());
            castFilter.Update();

            vtkMetaImageWriter writer = vtkMetaImageWriter.New();

            writer.SetInputConnection(castFilter.GetOutputPort());
            writer.SetFileName(filePath);
            writer.SetRAWFileName(filePathRaw);
            writer.Write();

            // Read and display file for verification that it was written correctly
            vtkMetaImageReader reader = vtkMetaImageReader.New();

            if (reader.CanReadFile(filePath) == 0)
            {
                MessageBox.Show("Cannot read file \"" + filePath + "\"", "Error", MessageBoxButtons.OK);
                return;
            }
            reader.SetFileName(filePath);
            reader.Update();
            vtkImageActor actor = vtkImageActor.New();

            actor.SetInput(reader.GetOutput());

            // Visualize
            vtkRenderWindow renderWindow = renderWindowControl1.RenderWindow;
            // renderer
            vtkRenderer renderer = renderWindow.GetRenderers().GetFirstRenderer();

            // set background color
            renderer.SetBackground(0.2, 0.3, 0.4);
            renderer.AddActor(actor);
        }