[vtkusers] 3D rendering with Skin & colouring
Bill Lorensen
bill.lorensen at gmail.com
Wed Aug 12 11:19:58 EDT 2009
Color values are between 0.0 and 1.0. Your skin color is set to:
actorskin.GetProperty().SetColor(100, 67, 67);
try
actorskin.GetProperty().SetColor(1.0, .67, .67);
On Wed, Aug 12, 2009 at 8:59 AM, Gururajan<gururajan.r at raster.in> wrote:
> Please any one guide me , how i can add skin to my 3d image.
>
> The 3d image comes with bone part, not with the skin.
>
> I have pasted below my code in java
>
> Thanks
> Guru
>
> vtkDICOMImageReader dicomreader = new vtkDICOMImageReader();
> dicomreader.SetDirectoryName("/home/gururaj/MANIX/43a297f8");
>
>
> 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();
>
>
>
> vtkMarchingCubes surfaceExtractor = new vtkMarchingCubes();
> surfaceExtractor.SetInput(dicomreader.GetOutput());
> surfaceExtractor.ComputeNormalsOn();
>
> surfaceExtractor.SetValue(0, 1250);
> surfaceExtractor.Update();
>
> vtkPolyDataNormals normals = new vtkPolyDataNormals();
> normals.SetInput(surfaceExtractor.GetOutput());
> normals.FlipNormalsOn();
>
> vtkPolyDataWriter pdw = new vtkPolyDataWriter();
> pdw.SetInput(normals.GetOutput());
> pdw .SetFileName("/home/gururaj/eclipse
> Project/SimpleVTK/SimpleVtk/CardiacCT/Dicom.vtk");
> pdw.Write();
>
>
> // 3d Construction
> String strfilename = new String();
> strfilename = "/home/gururaj/eclipse
> Project/SimpleVTK/SimpleVtk/CardiacCT/Dicom.vtk";
>
> vtkPolyDataReader polyReader = new vtkPolyDataReader();
> polyReader.SetFileName(strfilename);
> polyReader.Update();
>
> vtkPolyData polyData = new vtkPolyData();
> polyData.DeepCopy(polyReader.GetOutput());
>
> vtkPolyDataMapper polyMapper = new vtkPolyDataMapper();
> polyMapper.SetInput(polyData);
> polyMapper.Update();
> polyMapper.ScalarVisibilityOff();
>
> //for skin and bone Diagram
> //For setting Bone Colour
> vtkGeometryFilter geovolumebone = new vtkGeometryFilter();
> geovolumebone.SetInput(polyReader.GetOutput());
>
> vtkPolyDataMapper geobonemapper = new vtkPolyDataMapper();
> geobonemapper.SetInput(geovolumebone.GetOutput());
> geobonemapper.ScalarVisibilityOff();
>
> vtkLODActor boneActor = new vtkLODActor();
> boneActor.SetNumberOfCloudPoints(100000);
> boneActor.SetMapper(geobonemapper);
> boneActor.GetProperty().SetColor(1,1,1);
> boneActor.GetProperty().SetOpacity(3.0);
> boneActor.GetProperty().SetDiffuse(0.75);
> boneActor.GetProperty().SetSpecular(0.75);
> //For setting Bone Colour
>
> //For setting Skin Colour
> vtkMarchingCubes skin = new vtkMarchingCubes();
> skin.SetInput(dicomreader.GetOutput());
> skin.SetValue(0, 760);
> skin.ComputeNormalsOn();
>
> vtkGeometryFilter geovolumeSkin = new vtkGeometryFilter();
> geovolumeSkin.SetInput(skin.GetOutput());
>
> vtkPolyDataMapper skinmapper = new vtkPolyDataMapper();
> skinmapper.SetInput(geovolumeSkin.GetOutput());
> skinmapper.ScalarVisibilityOff();
>
> vtkLODActor actorskin = new vtkLODActor();
> actorskin.SetNumberOfCloudPoints(100000);
> actorskin.SetMapper(skinmapper);
> //actorskin.GetProperty().SetColor(1, 0.547237, 0.319073);
> actorskin.GetProperty().SetColor(100, 67, 67);
> actorskin.GetProperty().SetOpacity( 0.5 );
> //For setting Skin Colour
> //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.SetBackground(0, 0, 0);
>
>
> renwindow.BordersOff();
> renwindow.FullScreenOn();
> renwindow.SetSize(500, 500);
> renwindow.Render();
> render.ResetCamera();
> renintec.Start();
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the VTK FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
>
More information about the vtkusers
mailing list