<!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.2800.1400" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face="Courier New" size=2>Hi vtk users,</FONT></DIV>
<DIV><FONT face="Courier New" size=2>I have a series of slices (PNG files) 
obtained from an ultrasound registration and I'm trying to reconstruct a 3D 
volume rendering. The result is a 3D volume with an huge banding effect that I'm 
not able to eliminate. Could someone help me?&nbsp;The TCL code I'm using is the 
following:</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2>package require vtk<BR>package require 
vtkinteraction</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2># Create the standard renderer, render 
window<BR># and interactor<BR>vtkRenderer ren1<BR>vtkRenderWindow 
renWin<BR>&nbsp;&nbsp;&nbsp; renWin AddRenderer 
ren1<BR>vtkRenderWindowInteractor iren<BR>&nbsp;&nbsp;&nbsp; iren 
SetRenderWindow renWin</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2>vtkPNGReader reader<BR>&nbsp;&nbsp; reader 
SetDataExtent 0 0 0 0 0 72<BR>&nbsp;&nbsp; reader SetDataSpacing 0.3 0.3 
0.18<BR>&nbsp;&nbsp; reader SetFilePrefix "C:/bscansdi/slice"</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2>vtkImageIslandRemoval2D 
islandRemover<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; islandRemover SetAreaThreshold 
4<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; islandRemover SetIslandValue 
-1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; islandRemover SetReplaceValue 
1.0<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; islandRemover SetInput [reader 
GetOutput];</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2>vtkImageGaussianSmooth&nbsp; 
gaussian<BR>&nbsp;&nbsp;&nbsp;&nbsp; gaussian SetStandardDeviations 1.0 1.0 
1.0<BR>&nbsp;&nbsp;&nbsp;&nbsp; gaussian SetRadiusFactors 1.0 1.0 
1.0<BR>&nbsp;&nbsp;&nbsp;&nbsp; gaussian SetInput [islandRemover 
GetOutput]</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV><BR><FONT face="Courier New" size=2>vtkImageThreshold 
selectTissue<BR>&nbsp;&nbsp;&nbsp;&nbsp; selectTissue ThresholdBetween 30.0 
255.0<BR>&nbsp;&nbsp;&nbsp;&nbsp; selectTissue 
ReplaceInOff<BR>&nbsp;&nbsp;&nbsp;&nbsp; selectTissue SetOutValue 
0.0<BR>&nbsp;&nbsp;&nbsp;&nbsp; selectTissue SetInput [gaussian 
GetOutput]</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2># Create transfer mapping scalar value to 
opacity<BR>vtkPiecewiseFunction opacityTransferFunction<BR>&nbsp;&nbsp;&nbsp; 
opacityTransferFunction AddPoint&nbsp; 0&nbsp;&nbsp; 0.0<BR>&nbsp;&nbsp;&nbsp; 
opacityTransferFunction AddPoint&nbsp; 10&nbsp;&nbsp; 
0.259<BR>&nbsp;&nbsp;&nbsp; opacityTransferFunction AddPoint&nbsp; 255&nbsp; 
1.0</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2># Create transfer mapping scalar value to 
color<BR>vtkColorTransferFunction colorTransferFunction<BR>&nbsp;&nbsp;&nbsp; 
colorTransferFunction AddRGBPoint&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0 0.0 0.0 
0.0<BR>&nbsp;&nbsp;&nbsp; colorTransferFunction 
AddRGBPoint&nbsp;&nbsp;&nbsp;&nbsp; 10.0 0.259 0.259 0.3<BR>&nbsp;&nbsp;&nbsp; 
colorTransferFunction AddRGBPoint&nbsp;&nbsp;&nbsp; 255.0 1.0 1.0 
0.3</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2># The property describes how the data will 
look<BR>vtkVolumeProperty volumeProperty<BR>&nbsp;&nbsp;&nbsp; volumeProperty 
SetColor colorTransferFunction<BR>&nbsp;&nbsp;&nbsp; volumeProperty 
SetScalarOpacity opacityTransferFunction<BR>&nbsp;&nbsp;&nbsp; volumeProperty 
SetInterpolationTypeToLinear<BR>&nbsp;&nbsp;&nbsp; volumeProperty 
ShadeOff</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2># The mapper / ray cast function know how 
to render the data<BR>vtkVolumeRayCastCompositeFunction&nbsp; 
compositeFunction<BR>vtkVolumeRayCastMapper volumeMapper<BR>&nbsp;&nbsp;&nbsp; 
volumeMapper SetVolumeRayCastFunction compositeFunction<BR>&nbsp;&nbsp;&nbsp; 
volumeMapper SetInput [selectTissue GetOutput]</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2># The volume holds the mapper and the 
property and<BR># can be used to position/orient the volume<BR>vtkVolume 
volume<BR>&nbsp;&nbsp;&nbsp; volume SetMapper volumeMapper<BR>&nbsp;&nbsp;&nbsp; 
volume SetProperty volumeProperty</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2>ren1 AddVolume volume<BR>ren1 SetBackground 
0.1 0.2 0.4<BR>renWin Render</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2>iren Initialize</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2>wm withdraw .</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2>Thank for your help</FONT></DIV>
<DIV><FONT face="Courier New" size=2>Sandro Rosi</FONT></DIV></BODY></HTML>