<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.2963" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=5>This is the code in c++ : (when i use 
vtkStructuredPointsReder it's all ok but, when i use vtkVolume16Reder to convert 
dicom image ,the result is Bad&nbsp;&nbsp;). I try to use<FONT size=2>&nbsp; 
vtkImageCast *cast = vtkImageCast::New(); </FONT><FONT 
size=2>cast-&gt;SetInput(reder-&gt;GetOutput()); </FONT><FONT 
size=2>cast-&gt;SetOutputScalarTypeToUnsignedChar(); </FONT><FONT size=5>for 
very bed result . </FONT></FONT></DIV>
<DIV><FONT face=Arial size=5></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=5>CODE:</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;<FONT size=3>vtkRenderWindow *renWin = 
vtkRenderWindow::New();</FONT>
<P><FONT size=3>vtkRenderWindowInteractor *iren = 
vtkRenderWindowInteractor::New();</FONT></P>
<P><FONT size=3>iren-&gt;SetRenderWindow(renWin);</FONT></P>
<P><FONT size=3>vtkRenderer *ren = vtkRenderer::New();</FONT></P>
<P><FONT size=3>renWin-&gt;AddRenderer(ren);</FONT></P>
<P><FONT size=3></FONT></P><FONT color=#008000>
<P><FONT size=3>// Read the data from a vtk file</FONT></P>
<P><FONT size=3>// vtkStructuredPointsReader *reader = 
vtkStructuredPointsReader::New();</FONT></P></FONT>
<P><FONT color=#008000><FONT 
size=3>//reader-&gt;SetFileName("C:/ironProt.vtk");</FONT></P></FONT>
<P><FONT color=#008000><FONT size=3>//reader-&gt;Update();</FONT></P></FONT>
<P><FONT size=3>vtkVolume16Reader *reader = vtkVolume16Reader::New();</FONT></P>
<P><FONT size=3>reader-&gt;SetDataByteOrderToLittleEndian();</FONT></P>
<P><FONT size=3></FONT></P>
<P><FONT color=#008000><FONT 
size=3>//reader-&gt;SetFilePattern("dcm");</FONT></P></FONT>
<P><FONT size=3>reader-&gt;SetDataDimensions (512,512);</FONT></P>
<P><FONT size=3>reader-&gt;SetImageRange (1,20);</FONT></P>
<P><FONT size=3>reader-&gt;SetFilePrefix("C:/TAC_BODY_MOD/0001000");</FONT></P>
<P><FONT size=3>reader-&gt;SetDataSpacing (2, 2, 1.5);</FONT></P>
<P><FONT size=3></FONT>&nbsp;</P>
<P><FONT color=#008000><FONT size=3>// Create a transfer function mapping scalar 
value to opacity</FONT></P></FONT>
<P><FONT size=3>vtkPiecewiseFunction *oTFun = 
vtkPiecewiseFunction::New();</FONT></P>
<P><FONT size=3>oTFun-&gt;AddSegment(10, 0.0, 255, 0.3);</FONT></P>
<P><FONT size=3>vtkPiecewiseFunction *oTFun2 = 
vtkPiecewiseFunction::New();</FONT></P>
<P><FONT size=3>oTFun2-&gt;AddSegment( 0, 0.0, 128, 1.0);</FONT></P>
<P><FONT size=3>oTFun2-&gt;AddSegment(128, 1.0, 255, 0.0);</FONT></P>
<P><FONT color=#008000><FONT size=3>// Create a transfer function mapping scalar 
value to color (grey)</FONT></P></FONT>
<P><FONT size=3>vtkPiecewiseFunction *gTFun = 
vtkPiecewiseFunction::New();</FONT></P>
<P><FONT size=3>gTFun-&gt;AddSegment(0, 1.0, 255, 1.0);</FONT></P>
<P><FONT size=3></FONT></P>
<P><FONT color=#008000><FONT size=3>// Create a transfer function mapping scalar 
value to color (color)</FONT></P></FONT>
<P><FONT size=3>vtkColorTransferFunction *cTFun = 
vtkColorTransferFunction::New();</FONT></P>
<P><FONT size=3>cTFun-&gt;AddRGBPoint( 0, 1.0, 0.0, 0.0 );</FONT></P>
<P><FONT size=3>cTFun-&gt;AddRGBPoint( 64, 1.0, 1.0, 0.0 );</FONT></P>
<P><FONT size=3>cTFun-&gt;AddRGBPoint( 128, 0.0, 1.0, 0.0 );</FONT></P>
<P><FONT size=3>cTFun-&gt;AddRGBPoint( 192, 0.0, 1.0, 1.0 );</FONT></P>
<P><FONT size=3>cTFun-&gt;AddRGBPoint( 255, 0.0, 0.0, 1.0 );</FONT></P>
<P><FONT color=#008000><FONT size=3>// Create a transfer function mapping 
magnitude of gradient to opacity</FONT></P></FONT>
<P><FONT size=3>vtkPiecewiseFunction *goTFun = 
vtkPiecewiseFunction::New();</FONT></P>
<P><FONT size=3>goTFun-&gt;AddPoint( 0, 0.0 );</FONT></P>
<P><FONT size=3>goTFun-&gt;AddPoint( 30, 0.0 );</FONT></P>
<P><FONT size=3>goTFun-&gt;AddPoint( 40, 1.0 );</FONT></P>
<P><FONT size=3>goTFun-&gt;AddPoint( 255, 1.0 );</FONT></P>
<P><FONT color=#008000><FONT size=3>// Create a set of properties with varying 
options</FONT></P></FONT>
<P><FONT size=3>vtkVolumeProperty *prop = vtkVolumeProperty::New();</FONT></P>
<P><FONT size=3>prop-&gt;SetShade(1);</FONT></P>
<P><FONT size=3>prop-&gt;SetAmbient(0.3);</FONT></P>
<P><FONT size=3>prop-&gt;SetDiffuse(1.0);</FONT></P>
<P><FONT size=3>prop-&gt;SetSpecular(0.2);</FONT></P>
<P><FONT size=3>prop-&gt;SetSpecularPower(50.0);</FONT></P>
<P><FONT size=3>prop-&gt;SetScalarOpacity(oTFun);</FONT></P>
<P><FONT size=3>prop-&gt;SetGradientOpacity( goTFun );</FONT></P>
<P><FONT size=3>prop-&gt;SetColor( gTFun );</FONT></P>
<P><FONT size=3>prop-&gt;SetInterpolationTypeToNearest();</FONT></P>
<P><FONT color=#008000 size=3>// 
prop-&gt;SetInterpolationTypeToLinear();</FONT><FONT color=#008000></P></FONT>
<P><FONT color=#008000><FONT size=3>// Create mip ray 
functions</FONT></P></FONT>
<P><FONT size=3>vtkVolumeRayCastMIPFunction *MIPFunction1 = </FONT></P>
<P><FONT size=3>vtkVolumeRayCastMIPFunction::New();</FONT></P>
<P><FONT size=3>MIPFunction1-&gt;SetMaximizeMethodToScalarValue();</FONT></P>
<P><FONT size=3>vtkFiniteDifferenceGradientEstimator *gradest = </FONT></P>
<P><FONT size=3>vtkFiniteDifferenceGradientEstimator::New();</FONT></P>
<P><FONT size=3></FONT></P>
<P><FONT size=3></FONT></P>
<P><FONT size=3>vtkVolume *volume = vtkVolume::New();</FONT></P>
<P><FONT size=3></FONT></P>
<P><FONT size=3>ren-&gt;AddViewProp(volume);</FONT></P>
<P><FONT size=3></FONT></P>
<P><FONT size=3></FONT></P>
<P><FONT size=3></FONT></P>
<P><FONT size=3>vtkVolumeRayCastMapper *raycastMapper = 
vtkVolumeRayCastMapper::New();</FONT></P>
<P><FONT 
size=3>raycastMapper-&gt;SetInputConnection(reader-&gt;GetOutputPort());</FONT></P>
<P><FONT size=3>raycastMapper-&gt;SetGradientEstimator(gradest);</FONT></P>
<P><FONT size=3>volume-&gt;SetMapper( raycastMapper );</FONT></P>
<P><FONT size=3>volume-&gt;SetProperty( prop );</FONT></P>
<P><FONT size=3>raycastMapper-&gt;SetVolumeRayCastFunction(MIPFunction1 
);</FONT></P>
<P><FONT size=3>renWin-&gt;SetSize(400,350);</FONT></P>
<P><FONT size=3>ren-&gt;ResetCamera();</FONT></P>
<P><FONT size=3>ren-&gt;GetActiveCamera()-&gt;Zoom(1.5);</FONT></P>
<P><FONT size=3></FONT></P>
<P><FONT size=3>renWin-&gt;Render();</FONT></P>
<P><FONT size=3></FONT></P>
<P><FONT color=#008000><FONT size=3>// Interact with the data at 3 frames per 
second</FONT></P></FONT>
<P><FONT size=3>iren-&gt;SetDesiredUpdateRate(3.0);</FONT></P>
<P><FONT size=3>iren-&gt;SetStillUpdateRate(0.001);</FONT></P>
<P><FONT size=3>iren-&gt;Start();</FONT></P>
<P><FONT size=3></FONT></P>
<P><FONT color=#008000><FONT size=3>// Clean up</FONT></P></FONT>
<P><FONT size=3>reader-&gt;Delete();</FONT></P>
<P><FONT size=3>oTFun-&gt;Delete();</FONT></P>
<P><FONT size=3>oTFun2-&gt;Delete();</FONT></P>
<P><FONT size=3>gTFun-&gt;Delete();</FONT></P>
<P><FONT size=3>cTFun-&gt;Delete();</FONT></P>
<P><FONT size=3>goTFun-&gt;Delete();</FONT></P>
<P><FONT size=3>prop-&gt;Delete();</FONT></P>
<P><FONT size=3></FONT></P>
<P><FONT size=3></FONT></P>
<P><FONT size=3>MIPFunction1-&gt;Delete();</FONT></P>
<P><FONT size=3>volume-&gt;Delete();</FONT></P>
<P><FONT size=3></FONT></P>
<P><FONT size=3>gradest-&gt;Delete();</FONT></P>
<P><FONT size=3>raycastMapper-&gt;Delete();</FONT></P>
<P><FONT size=3>ren-&gt;Delete();</FONT></P>
<P><FONT size=3>iren-&gt;Delete();</FONT></P>
<P><FONT size=3>renWin-&gt;Delete();</FONT></P>
<P><FONT size=5>Thanks to help me .... Bets reguards Michele 
</FONT></P></FONT></DIV></BODY></HTML>