[vtkusers] Real colours in 3D CT image(DICOM)
Gururajan.R
gururajan.r at raster.in
Tue Oct 6 10:29:04 EDT 2009
Bill
Please find the below actor coding
Thanks for your kind effort
vtkLODActor boneActor = new vtkLODActor();
//vtkActor boneActor = new vtkActor();
boneActor.SetNumberOfCloudPoints(500000);
boneActor.SetMapper(geobonemapper);
boneActor.GetProperty().SetColor(0.75,0.5,0.75);
boneActor.GetProperty().SetAmbientColor(.75, .10, .25);
boneActor.GetProperty().SetDiffuseColor(0.75, .04, .025);
boneActor.GetProperty().BackfaceCullingOn();
boneActor.GetProperty().EdgeVisibilityOn();
boneActor.GetProperty().FrontfaceCullingOn();
boneActor.GetProperty().GlobalWarningDisplayOn();
boneActor.GetProperty().SetColor(boneActor.GetProperty().GetColor());
boneActor.GetProperty().SetOpacity(0.75);
boneActor.GetProperty().SetSpecularPower(100);
boneActor.GetProperty().SetDiffuse(0.75);
boneActor.GetProperty().SetSpecular(.4)
Thanks
Guru
Bill Lorensen wrote:
> 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