<div>Hi everyone, </div>
<div>&nbsp;</div>
<div>I am trying to use the itkGradientAnisotropicDiffusionImageFilter class for smoothing my MRI images. To my dismay, my images&nbsp;are not&nbsp;responding to the filter even when I run 50 or so iterations with a conductance of about 
3.0 (i.e. output image is the same as the input image with no visible difference). An earlier forum post had suggested to use a 3.0 conductance level, but such a high conductance rate&nbsp;makes the output&nbsp;image unrecognizable&nbsp;(lots of salt-pepper noise). 
</div>
<div>&nbsp;</div>
<div>So has anyone used this filter before, and if so, what sort of parameter&nbsp;values&nbsp;(number of iterations, conductance and time step) should I be looking to use. Although I know that these values&nbsp;depend on&nbsp;the type of my&nbsp;images I am working with, but any&nbsp;suggestions will be very useful. 
</div>
<div>&nbsp;</div>
<div>Also in the documentation it says somewhere&nbsp;that the time step parameter is similar to the width of the gaussian kernel. I have tried values of 20.0 - 30.0. However, I get a warning message telling me that&nbsp;this sort of value is an&nbsp;&quot;unstable&nbsp;time step&quot; for my images. The message also suggests a timestep which is usually a very small value (~ 
0.05). What i dont understand, is that I&nbsp;had no problems&nbsp;(isotropic) Gaussian&nbsp;smoothing my images with widths ranging from 20.0 - 30.0, then why does the anisotropic filter complain for such widths? </div>
<div>&nbsp;</div>
<div>Here is part of my code if it&nbsp;helps: </div>
<div>&nbsp;</div>
<div>&nbsp;typedef itk::Image&lt; PixelType, 3 &gt; InputImageType;<br>&nbsp;typedef itk::Image&lt; PixelType, 3 &gt; OutputImageType;<br>&nbsp;typedef itk::ImageFileReader&lt; InputImageType &gt; ReaderType;<br>&nbsp;typedef itk::ImageFileWriter&lt; OutputImageType &gt;&nbsp; WriterType;
<br>&nbsp;typedef itk::GiplImageIO ImageIOType; <br>&nbsp;typedef itk::GradientAnisotropicDiffusionImageFilter&lt;InputImageType, OutputImageType &gt; FilterType;<br>&nbsp;</div>
<div>
<p>&nbsp;ReaderType::Pointer reader = ReaderType::New();<br>&nbsp;WriterType::Pointer writer = WriterType::New();<br>&nbsp;ImageIOType::Pointer giplIO = ImageIOType::New(); <br>&nbsp;FilterType::Pointer filter = FilterType::New();</p>
<p>&nbsp;reader-&gt;SetFileName( argv[1] );<br>&nbsp;writer-&gt;SetFileName( argv[2] ); <br>&nbsp;<br>&nbsp;<br>&nbsp;// for GIPL files<br>&nbsp;reader-&gt;SetImageIO(giplIO); <br>&nbsp;writer-&gt;SetImageIO(giplIO); <br>&nbsp;<br>&nbsp;//reader-&gt;Update();<br>&nbsp;<br>
&nbsp;writer-&gt;SetInput(filter-&gt;GetOutput()); <br>&nbsp;filter-&gt;SetInput(reader-&gt;GetOutput());<br>&nbsp;filter-&gt;SetNumberOfIterations( numberOfIterations );<br>&nbsp;filter-&gt;SetTimeStep( timeStep );<br>&nbsp;filter-&gt;SetConductanceParameter( conductance );
<br>&nbsp;writer-&gt;Update();</p>
<p>Thanks for any suggestions, </p>
<p>&nbsp;</p>
<p>Regards, </p>
<p>Rashed Karim. </p></div>