<div class="gmail_quote"><br>David,<br><br>I'm using a cone-beam head ct, the sample volume that I'm using have a scalar opacity map from -3024 to 7190, and the bones appear after 200 (in another software I'm using a ramp from 200 to 7190). I have tried some numbers to check this, but in any case the composite mode dont show anything, you can see this on the images attached. <br>
<br>Thank in advance,<br>Alessandro Martini<br><br><div class="gmail_quote">On Wed, Oct 13, 2010 at 4:35 PM, David Gobbi <span dir="ltr"><<a href="mailto:david.gobbi@gmail.com" target="_blank">david.gobbi@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">Hi Allessandro,<br>
<br>
The three transfer functions in that example (the volumeColor,<br>
volumeScalarOpacity, and volumeGradientOpacity) are hard-coded for the<br>
headsq/quarter images in VTKData. To use them with any other volume,<br>
you must change the values.<br>
<br>
volumeColor->AddRGBPoint(0, 0.0, 0.0, 0.0);<br>
volumeColor->AddRGBPoint(500, 1.0, 0.5, 0.3);<br>
volumeColor->AddRGBPoint(1000, 1.0, 0.5, 0.3);<br>
volumeColor->AddRGBPoint(1150, 1.0, 1.0, 0.9);<br>
<br>
volumeScalarOpacity->AddPoint(0, 0.00);<br>
volumeScalarOpacity->AddPoint(500, 0.15);<br>
volumeScalarOpacity->AddPoint(1000, 0.15);<br>
volumeScalarOpacity->AddPoint(1150, 0.85);<br>
<br>
These are made for a volume with intensity values that approximately<br>
range from 0 to 1200. Find the intensity range of your DICOM data and<br>
adjust them accordingly. Then you will be able to use "Composite" for<br>
your volume rendering.<br>
<br>
David<br>
<br>
<br>
On Wed, Oct 13, 2010 at 1:09 AM, Alessandro Martini<br>
<<a href="mailto:alessandromartini@gmail.com" target="_blank">alessandromartini@gmail.com</a>> wrote:<br>
> I get the medical4.cxx example and change it to open a dicom file, resulting<br>
> this code, but with SetBlendModeToComposite the volume dond appear, and<br>
> SetBlendModeToAdictive is to much slow, what I need to use<br>
> SetBlendModeToComposite?<br>
><br>
> vtkSmartPointer<vtkRenderer>ren = vtkWindow1->GetRenderer();<br>
> vtkSmartPointer<vtkRenderWindowInteractor>iren =<br>
> vtkWindow1->GetInteractor();<br>
><br>
> vtkSmartPointer<vtkDICOMImageReader>dicomReader =<br>
> vtkSmartPointer<vtkDICOMImageReader>::New();<br>
> dicomReader->SetDirectoryName(dirname);<br>
> dicomReader->Update();<br>
><br>
> vtkSmartPointer<vtkSmartVolumeMapper>volumeMapper =<br>
> vtkSmartPointer<vtkSmartVolumeMapper>::New();<br>
> volumeMapper->SetInput(dicomReader->GetOutput());<br>
><br>
> -->> volumeMapper->SetBlendModeToAdditive();<br>
> <<--<br>
><br>
> vtkSmartPointer<vtkColorTransferFunction>volumeColor =<br>
> vtkSmartPointer<vtkColorTransferFunction>::New();<br>
> volumeColor->AddRGBPoint(0, 0.0, 0.0, 0.0);<br>
> volumeColor->AddRGBPoint(500, 1.0, 0.5, 0.3);<br>
> volumeColor->AddRGBPoint(1000, 1.0, 0.5, 0.3);<br>
> volumeColor->AddRGBPoint(1150, 1.0, 1.0, 0.9);<br>
><br>
> vtkSmartPointer<vtkPiecewiseFunction>volumeScalarOpacity =<br>
> vtkSmartPointer<vtkPiecewiseFunction>::New();<br>
> volumeScalarOpacity->AddPoint(0, 0.00);<br>
> volumeScalarOpacity->AddPoint(500, 0.15);<br>
> volumeScalarOpacity->AddPoint(1000, 0.15);<br>
> volumeScalarOpacity->AddPoint(1150, 0.85);<br>
><br>
> vtkSmartPointer<vtkPiecewiseFunction>volumeGradientOpacity =<br>
> vtkSmartPointer<vtkPiecewiseFunction>::New();<br>
> volumeGradientOpacity->AddPoint(0, 0.0);<br>
> volumeGradientOpacity->AddPoint(90, 0.5);<br>
> volumeGradientOpacity->AddPoint(100, 1.0);<br>
><br>
> vtkSmartPointer<vtkVolumeProperty>volumeProperty =<br>
> vtkSmartPointer<vtkVolumeProperty>::New();<br>
> volumeProperty->SetColor(volumeColor);<br>
> volumeProperty->SetScalarOpacity(volumeScalarOpacity);<br>
> volumeProperty->SetGradientOpacity(volumeGradientOpacity);<br>
> volumeProperty->SetInterpolationTypeToLinear();<br>
> volumeProperty->ShadeOn();<br>
> volumeProperty->SetAmbient(0.4);<br>
> volumeProperty->SetDiffuse(0.6);<br>
> volumeProperty->SetSpecular(0.2);<br>
><br>
> vtkSmartPointer<vtkVolume>volume =<br>
> vtkSmartPointer<vtkVolume>::New();<br>
> volume->SetMapper(volumeMapper);<br>
> volume->SetProperty(volumeProperty);<br>
><br>
> ren->AddViewProp(volume);<br>
><br>
> vtkCamera *camera = ren->GetActiveCamera();<br>
> double *c = volume->GetCenter();<br>
> camera->SetFocalPoint(c[0], c[1], c[2]);<br>
> camera->SetPosition(c[0] + 400, c[1], c[2]);<br>
> camera->SetViewUp(0, 0, -1);<br>
><br>
> vtkWindow1->Invalidate();<br>
><br>
> iren->Initialize();<br>
> iren->Start();<br>
><br>
> Thank's,<br>
> Alessandro Martini<br>
> <a href="mailto:alessandromartini@gmail.com" target="_blank">alessandromartini@gmail.com</a><br>
> -------------------------------------------------<br>
> 'Existem 10 tipos de pessoas no mundo:<br>
> aquelem que entendem binário, e aqueles que não!'<br>
><br>
> _______________________________________________<br>
> Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
><br>
> Visit other Kitware open-source projects at<br>
> <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
><br>
> Please keep messages on-topic and check the VTK FAQ at:<br>
> <a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
><br>
> Follow this link to subscribe/unsubscribe:<br>
> <a href="http://www.vtk.org/mailman/listinfo/vtkusers" target="_blank">http://www.vtk.org/mailman/listinfo/vtkusers</a><br>
><br>
><br>
</blockquote></div><br><br clear="all"><br>-- <br>Alessandro Martini<br><a href="mailto:alessandromartini@gmail.com" target="_blank">alessandromartini@gmail.com</a><br>-------------------------------------------------<br>
'Existem 10 tipos de pessoas no mundo:<br>
aquelem que entendem binário, e aqueles que não!'<br>
</div><br><br clear="all"><br>-- <br>Alessandro Martini<br><a href="mailto:alessandromartini@gmail.com">alessandromartini@gmail.com</a><br>-------------------------------------------------<br>'Existem 10 tipos de pessoas no mundo:<br>
aquelem que entendem binário, e aqueles que não!'<br>