[vtkusers] Real colours in 3D CT image(DICOM)

Gururajan.R gururajan.r at raster.in
Mon Oct 5 10:26:30 EDT 2009


bill

for your kind view i have pasted my entire programme,.


thanks
guru


//
package in.raster.viewer.component;
import in.raster.viewer.component.VolumeRenderWithBoxWidget.MyVtkCanvas;

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

import vtk.*;

public class Cubes extends JPanel implements ActionListener {
    /**
     *
     */
    private static final long serialVersionUID = 1L;
    static JFrame frame;
    //vtkPanel renWin;
    JButton exitButton;
    MyVtkCanvas renWin;
    vtkBoxWidget boxWidget;
    vtkVolumeRayCastMapper volumeMapper;
    vtkPlanes planes;
    int intwinHeight=300;
    int intwinWidth = 300;
   

    public Cubes() {
        {
            System.loadLibrary("vtkCommonJava");
            System.loadLibrary("vtkFilteringJava");
            System.loadLibrary("vtkIOJava");
            System.loadLibrary("vtkImagingJava");
            System.loadLibrary("vtkGraphicsJava");
            System.loadLibrary("vtkRenderingJava");
            System.loadLibrary("vtkVolumeRenderingJava");
        }

    setLayout(new BorderLayout());
        vtkDICOMImageReader dicomreader = new vtkDICOMImageReader();
        dicomreader.SetDirectoryName("/home/guru/Desktop/3D/COU IV");
        dicomreader.SetFileNameSliceOffset(1);
        dicomreader.SetFileNameSliceSpacing(1);
        dicomreader.SetDataExtent(0,511,0,511,0,224);
        dicomreader.SetDataSpacing(360.0/512,360.0/512,1.0);
        dicomreader.SetDataOrigin(0,0,0);
        dicomreader.Update();
        //for skin and bone Diagram
            //For setting Bone Colour
                    vtkMarchingCubes bone = new vtkMarchingCubes();
                    bone.SetInput(dicomreader.GetOutput());
                    bone.SetValue(0, 120);
                    bone.ComputeNormalsOn();
       
                vtkGeometryFilter  geovolumebone = new vtkGeometryFilter();
                geovolumebone.SetInput(bone.GetOutput());
                vtkPolyDataMapper  geobonemapper = new vtkPolyDataMapper();
                geobonemapper.SetInput(geovolumebone.GetOutput());
                geobonemapper.ScalarVisibilityOff();
               
                //vtkLODActor boneActor = new vtkLODActor();
                vtkActor boneActor = new vtkActor();
                //boneActor.SetNumberOfCloudPoints(100000);
                boneActor.SetMapper(geobonemapper);
                //boneActor.GetProperty().SetColor(0.75,0.5,0.75);
                boneActor.GetProperty().SetOpacity(0.75);
                boneActor.GetProperty().SetSpecularPower(100);
                boneActor.GetProperty().SetDiffuse(1.75);
                boneActor.GetProperty().SetSpecular(1.75);
            //For setting Bone Colour
       
            //For setting Skin Colour
                vtkMarchingCubes skin = new vtkMarchingCubes();
                skin.SetInput(dicomreader.GetOutput());
                skin.SetValue(0, -300);
                skin.ComputeNormalsOn();
               
                vtkGeometryFilter geovolumeSkin = new vtkGeometryFilter();
                geovolumeSkin.SetInput(skin.GetOutput());
               
                vtkPolyDataMapper skinmapper = new vtkPolyDataMapper();
                skinmapper.SetInput(geovolumeSkin.GetOutput());
                skinmapper.ScalarVisibilityOff();
               
                //vtkActor actorskin = new vtkActor();
                vtkLODActor actorskin = new vtkLODActor();
                actorskin.SetNumberOfCloudPoints(100000);
                actorskin.SetMapper(skinmapper);
                actorskin.GetProperty().SetSpecularPower(100);
                actorskin.GetProperty().SetDiffuse(1.75);
                actorskin.GetProperty().SetSpecular(1.75);

                //actorskin.GetProperty().SetColor(1, 0.547237, 0.319073);
                //actorskin.GetProperty().SetColor(0.75,0.75, 0.75);
                actorskin.GetProperty().SetSpecularPower(100);
               
                actorskin.GetProperty().SetOpacity(1);
            //For setting Skin Colour
       
                  vtkCamera camera = new vtkCamera();
               
        //for skin and bone Diagram
        vtkRenderer render = new vtkRenderer();
        vtkRenderWindow renwindow = new vtkRenderWindow();
        renwindow.AddRenderer(render);
               
        vtkRenderWindowInteractor renintec = new
vtkRenderWindowInteractor();
        renintec.SetRenderWindow(renwindow);

          //render.AddActor(actorskin);
          render.AddActor(boneActor);
          render.SetActiveCamera(camera);
          render.ResetCamera();
          render.SetBackground(0, 0, 0);
          renwindow.BordersOff();
          renwindow.FullScreenOn();
          renwindow.SetSize(intwinWidth,intwinHeight);
       
        renwindow.Render();
        render.ResetCamera();
        renintec.Start();

    }


    /** An ActionListener that listens to the radio buttons. */
 public void actionPerformed(ActionEvent e) {
        if (e.getSource().equals(exitButton)) {
            System.exit(0);
        }
    }

    public static void main(String s[]) {
        Cubes panel = new Cubes();
    }
}



More information about the vtkusers mailing list