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

Gururajan.R gururajan.r at raster.in
Tue Oct 6 02:46:18 EDT 2009


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

-------------- next part --------------
A non-text attachment was scrubbed...
Name: test.jpg
Type: image/jpeg
Size: 35779 bytes
Desc: not available
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20091006/5f4ce5ee/attachment.jpg>


More information about the vtkusers mailing list