private void RotateImage(RotationOperation operation)
        {
            vtkImageReslice reslice   = vtkImageReslice.New();
            vtkTransform    transform = vtkTransform.New();

            transform.PostMultiply();

            double[] center = { 75, 100, 0 };
            transform.Translate(-center[0], -center[1], -center[2]);
            if (operation == RotationOperation.Forward)
            {
                transform.RotateZ(90);
            }
            else if (operation == RotationOperation.Back)
            {
                transform.RotateZ(-90);
            }
            transform.Translate(+center[0], +center[1], +center[2]);

            transform.Update();
            reslice.SetInput(_viewer.GetInput());
            reslice.SetResliceTransform(transform);
            reslice.Update();

            _viewer.SetInput(reslice.GetOutput());

            UpdateViewer();
        }
Beispiel #2
0
        public void sliceY(float slicePosition)
        {
            this.slicePosition = slicePosition;
            widget             = vtkImagePlaneWidget.New();
            widget.SetInput(dicomReader.GetOutput());
            widget.SetPlaneOrientationToYAxes();
            widget.SetSliceIndex((int)slicePosition);
            widget.SetWindowLevel(this.windowWidth, this.windowLevel, 1);
            viewer.SetInput(widget.GetResliceOutput());
            viewer.Render();

            window.Update();
            window.RenderWindow.Render();
        }
Beispiel #3
0
    public static int Main(string[] args)
    {
        string filename = args[0];

        vtkGDCMImageReader reader = vtkGDCMImageReader.New();
        vtkStringArray     array  = vtkStringArray.New();

        array.InsertNextValue(filename);

        reader.SetFileNames(array);
        reader.Update();

        //System.Console.Write(reader.GetOutput());

        vtkRenderWindowInteractor iren = vtkRenderWindowInteractor.New();

        vtkImageViewer2 viewer = vtkImageViewer2.New();

        viewer.SetInput(reader.GetOutput());
        viewer.SetupInteractor(iren);
        viewer.SetSize(600, 600);
        viewer.Render();

        iren.Initialize();
        iren.Start();

        return(0);
    }
Beispiel #4
0
        public static void SetImageView(vtkImageData image)
        {
            if (image == null)
            {
                image = vtkImageData.New();
            }

            if (ImageViewer == null)
            {
                ImageViewer = vtkImageViewer2.New();
            }

            ImageViewer.SetInput(image);
            ImageViewer.GetRenderer().SetBackground(1, 1, 1);

            RenWinControlImage.RenderWindow.GetRenderers().GetFirstRenderer().RemoveAllViewProps();

            ImageViewer.SetRenderWindow(RenWinControlImage.RenderWindow);
            ImageViewer.GetRenderer().ResetCamera();

            RenWinControlImage.RenderWindow.GetInteractor().SetInteractorStyle(new vtkInteractorStyleImage());
            RenWinControlImage.RenderWindow.Render();
        }
Beispiel #5
0
 /// <summary>
 /// Update the 2D visualization when the plane moved.
 /// </summary>
 /// <param name="plane">PlaneWidget which changed the coordinates.</param>
 public void PlaneMoved(vtkImagePlaneWidget plane)
 {
     _viewer.SetInput(plane.GetResliceOutput());
     UpdateViewer();
 }