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

Bill Lorensen bill.lorensen at gmail.com
Tue Oct 6 08:44:28 EDT 2009


Show me the exact actor portion of code that produced this image.

On Tue, Oct 6, 2009 at 2:46 AM, Gururajan.R <gururajan.r at raster.in> wrote:
> Bill
> Please find the attached image for your kind view
> Thanks
> Guru
>
>
> Bill Lorensen wrote:
>> This version of the code does not set the colors (they are commented
>> out) of the parts and some of the diffuse and specular values still
>> are > 1.0!
>>
>> One last chance, please send the code with the corrections I sent
>> before. Run the program and send to me (not the list) a screenshot of
>> the results.
>>
>> Bill
>>
>> On Mon, Oct 5, 2009 at 10:26 AM, Gururajan.R <gururajan.r at raster.in> wrote:
>>
>>> 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