<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style>
</head>
<body class='hmmessage'>
<BR><FONT color=#2b91af size=2><FONT color=#2b91af size=2>
<FONT color=#000000><STRONG>hello everyone, please i need help in adjusting the transferfunctions , i got a dark volume and i googled for a suitable transferfunstions but i could find any,so please can anyone help me?</STRONG></FONT><BR>
<FONT color=#000000><STRONG>here's the code i wrote:</STRONG></FONT><BR>
<BR>
vtkDICOMImageReader</FONT></FONT><FONT size=2> Reader = </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>new</FONT></FONT><FONT size=2> </FONT><FONT color=#2b91af size=2><FONT color=#2b91af size=2>vtkDICOMImageReader</FONT></FONT><FONT size=2>();<BR>
Reader.SetDirectoryName(FolderName);<BR>
Reader.Update();<BR>
</FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>double</FONT></FONT><FONT size=2>[] ImageRange = </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>new</FONT></FONT><FONT size=2> </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>double</FONT></FONT><FONT size=2>[2];<BR>
ImageRange = Reader.GetOutput().GetScalarRange();<BR>
<BR>
</FONT><FONT color=#2b91af size=2><FONT color=#2b91af size=2>vtkImageShiftScale</FONT></FONT><FONT size=2> ScaleFunc = </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>new</FONT></FONT><FONT size=2> </FONT><FONT color=#2b91af size=2><FONT color=#2b91af size=2>vtkImageShiftScale</FONT></FONT><FONT size=2>();<BR>
ScaleFunc.SetInputConnection(Reader.GetOutputPort());<BR>
ScaleFunc.SetShift(-1.0 * ImageRange[0]);<BR>
ScaleFunc.SetScale(255.0 / (ImageRange[1] - ImageRange[0]));<BR>
ScaleFunc.SetOutputScalarTypeToUnsignedChar();<BR>
ScaleFunc.Update();<BR>
</FONT><FONT color=#2b91af size=2><FONT color=#2b91af size=2>vtkImageData</FONT></FONT><FONT size=2> ImageData = </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>new</FONT></FONT><FONT size=2> </FONT><FONT color=#2b91af size=2><FONT color=#2b91af size=2>vtkImageData</FONT></FONT><FONT size=2>();<BR>
ImageData = ScaleFunc.GetOutput();<BR>
</FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>int</FONT></FONT><FONT size=2>[] Dimension = </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>new</FONT></FONT><FONT size=2> </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>int</FONT></FONT><FONT size=2>[3];<BR>
Dimension = ImageData.GetDimensions();<BR>
</FONT><FONT color=#008000 size=2><FONT color=#008000 size=2>/////<BR></FONT></FONT><FONT size=2>
</FONT><FONT color=#2b91af size=2><FONT color=#2b91af size=2>vtkImageGaussianSmooth</FONT></FONT><FONT size=2> smooth = </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>new</FONT></FONT><FONT size=2> </FONT><FONT color=#2b91af size=2><FONT color=#2b91af size=2>vtkImageGaussianSmooth</FONT></FONT><FONT size=2>();<BR>
smooth.SetDimensionality(3);</FONT><FONT color=#008000 size=2><FONT color=#008000 size=2>//three dimensional gaussian is performed. <BR></FONT></FONT><FONT size=2>
smooth.SetRadiusFactors(1, 1, 1);<BR>
smooth.SetStandardDeviation(3, 3, 3);</FONT><FONT color=#008000 size=2><FONT color=#008000 size=2>//Sets the Standard deviation of the gaussian in pixel units.<BR></FONT></FONT><FONT size=2>
smooth.SetInput(ImageData);<BR>
</FONT><FONT color=#2b91af size=2><FONT color=#2b91af size=2>vtkPiecewiseFunction</FONT></FONT><FONT size=2> opacitytransfer = </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>new</FONT></FONT><FONT size=2> </FONT><FONT color=#2b91af size=2><FONT color=#2b91af size=2>vtkPiecewiseFunction</FONT></FONT><FONT size=2>();</FONT><FONT color=#008000 size=2><FONT color=#008000 size=2>//control the opacity of voxels<BR></FONT></FONT><FONT size=2>
opacitytransfer.ClampingOff();<BR></FONT><FONT size=2>
opacitytransfer.AddPoint(84, 0);<BR>
opacitytransfer.AddPoint(151, .3);<BR>
opacitytransfer.AddPoint(255, 1);<BR>
<BR>
</FONT><FONT color=#2b91af size=2><FONT color=#2b91af size=2>vtkPiecewiseFunction</FONT></FONT><FONT size=2> Gradienttransfer = </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>new</FONT></FONT><FONT size=2> </FONT><FONT color=#2b91af size=2><FONT color=#2b91af size=2>vtkPiecewiseFunction</FONT></FONT><FONT size=2>();<BR>
Gradienttransfer.AddPoint(0, .2);<BR>
Gradienttransfer.AddPoint(10, .2);<BR>
Gradienttransfer.AddPoint(25, 1);<BR>
<BR>
</FONT><FONT color=#2b91af size=2><FONT color=#2b91af size=2>vtkColorTransferFunction</FONT></FONT><FONT size=2> colorTransferFunction = </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>new</FONT></FONT><FONT size=2> </FONT><FONT color=#2b91af size=2><FONT color=#2b91af size=2>vtkColorTransferFunction</FONT></FONT><FONT size=2>();</FONT><FONT color=#008000 size=2><FONT color=#008000 size=2>//control colors of voxels.<BR></FONT></FONT><FONT size=2>
colorTransferFunction.AddHSVPoint(0, .67, .07, 1);<BR>
colorTransferFunction.AddHSVPoint(94, .67, .07, 1);<BR>
colorTransferFunction.AddHSVPoint(139, 0, 0, 0);<BR>
colorTransferFunction.AddHSVPoint(160, .28, .047, 1);<BR>
colorTransferFunction.AddHSVPoint(254, .38, .013, 1);<BR>
</FONT><FONT color=#2b91af size=2><FONT color=#2b91af size=2>vtkVolumeProperty</FONT></FONT><FONT size=2> volumeproperty = </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>new</FONT></FONT><FONT size=2> </FONT><FONT color=#2b91af size=2><FONT color=#2b91af size=2>vtkVolumeProperty</FONT></FONT><FONT size=2>();<BR>
volumeproperty.SetColor(colorTransferFunction);<BR>
volumeproperty.SetScalarOpacity(opacitytransfer);<BR>
volumeproperty.SetGradientOpacity(Gradienttransfer);<BR>
volumeproperty.ShadeOn();<BR>
volumeproperty.SetDiffuse(2.0);<BR>
volumeproperty.SetAmbient(0.1);<BR>
volumeproperty.SetShade(1);<BR>
volumeproperty.SetSpecular(1.0);<BR>
volumeproperty.SetSpecularPower(70.0);<BR>
volumeproperty.SetInterpolationTypeToLinear();<BR>
</FONT><FONT color=#2b91af size=2><FONT color=#2b91af size=2>vtkVolumeRayCastMapper</FONT></FONT><FONT size=2> volumemapper = </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>new</FONT></FONT><FONT size=2> </FONT><FONT color=#2b91af size=2><FONT color=#2b91af size=2>vtkVolumeRayCastMapper</FONT></FONT><FONT size=2>();<BR>
</FONT><FONT color=#2b91af size=2><FONT color=#2b91af size=2>vtkVolumeRayCastCompositeFunction</FONT></FONT><FONT size=2> vray = </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>new</FONT></FONT><FONT size=2> </FONT><FONT color=#2b91af size=2><FONT color=#2b91af size=2>vtkVolumeRayCastCompositeFunction</FONT></FONT><FONT size=2>();<BR></FONT><FONT size=2>
volumemapper.SetVolumeRayCastFunction(vray);<BR>
volumemapper.SetInputConnection(smooth.GetOutputPort());<BR>
</FONT><FONT color=#2b91af size=2><FONT color=#2b91af size=2>vtkVolume</FONT></FONT><FONT size=2> volume = </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>new</FONT></FONT><FONT size=2> </FONT><FONT color=#2b91af size=2><FONT color=#2b91af size=2>vtkVolume</FONT></FONT><FONT size=2>();<BR>
volume.SetProperty(volumeproperty);<BR>
volume.SetMapper(volumemapper);<BR>
volumeproperty.SetInterpolationTypeToLinear();<BR>
</FONT><FONT color=#2b91af size=2><FONT color=#2b91af size=2>vtkCamera</FONT></FONT><FONT size=2> acamera = </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>new</FONT></FONT><FONT size=2> </FONT><FONT color=#2b91af size=2><FONT color=#2b91af size=2>vtkCamera</FONT></FONT><FONT size=2>();<BR>
acamera.SetViewUp(0, 0, -1);<BR>
acamera.SetPosition(0, 1, 0);<BR>
acamera.SetFocalPoint(0, 0, 0);<BR>
acamera.ComputeViewPlaneNormal();<BR>
acamera.UpdateViewport(Renderer);<BR>
Renderer.AddActor(volume);<BR>
Renderer.SetActiveCamera(acamera);<BR>
Renderer.ResetCamera();<BR>
Renderer.SetBackground(0, 0, 0);<BR>
renderWindowControl1.Refresh();<BR></FONT>                                            </body>
</html>