[vtkusers] 3D rendering with Skin & colouring

Gururajan gururajan.r at raster.in
Thu Aug 13 01:26:45 EDT 2009


Bill,

Thanks for your kind response, (try
actorskin.GetProperty().SetColor(1.0, .67, .67);)  thats right , but
this will help me in changing the skin colour,

but i need to form a layer like a skin which should cover the bone (like
human body).

Please guide me
Thanks
guru


Bill Lorensen wrote:
> 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