<br>Hi all,<br>I am trying out the convolution image filter by generating a simple Gaussian and convolving it with itself, ie, convolve a gaussian with itself. This is done in 2D. I get an output which consists of two peaks at two ends of the image along the X-axis.  This is obviously not the expected output. I have attached a simple sample code. <br>
Can someone faced a similar issue or help out with this? <br>thanks<br>krishnan<br>/************************************************************************************************************ */<br>#include &lt;itkImage.h&gt;<br>
#include &lt;itkGaussianImageSource.h&gt;<br>#include &lt;itkConvolutionImageFilter.h&gt;<br><br>typedef float PixelType;<br>typedef itk::Image&lt;PixelType, 2&gt; ImageType2D;<br>typedef itk::ImageFileReader&lt;ImageType2D&gt; Reader2D;<br>
typedef itk::ImageFileWriter&lt;ImageType2D&gt; Writer2D;<br>void convolve_test(ImageType2D::Pointer input_image, ImageType2D::Pointer kernel)<br>{<br>    typedef itk::ConvolutionImageFilter&lt;ImageType2D,ImageType2D&gt; Convolver_Type;<br>
    Convolver_Type::Pointer convolve = Convolver_Type::New();<br><br>    convolve-&gt;SetInput(kernel);<br>    convolve-&gt;SetImageKernelInput(kernel);<br>    convolve-&gt;Update();<br><br>    Writer2D::Pointer imwriter = Writer2D::New();<br>
    imwriter-&gt;SetInput(convolve-&gt;GetOutput());<br>    imwriter-&gt;SetFileName(&quot;lenna.nii&quot;);<br>    imwriter-&gt;Update();<br>    return;<br>}<br>int main(int argc, char **argv)<br>{<br>  Writer2D::Pointer writer = Writer2D::New();<br>
  ImageType2D::Pointer kernel;<br>  typedef itk::GaussianImageSource&lt;ImageType2D&gt; Gaussian_Generator_Type;<br>  Gaussian_Generator_Type::Pointer kernel_generator = Gaussian_Generator_Type::New();<br>  double sigma[3];<br>
  unsigned long size[3];<br>  double mean[3];<br><br>  Reader2D::Pointer imreader = Reader2D::New();<br>  imreader-&gt;SetFileName(argv[1]);<br>  imreader-&gt;Update();<br><br>  sigma[0] = 10.00; sigma[1] = 10.0;<br>  kernel_generator-&gt;SetSigma(sigma);<br>
<br>  kernel_generator-&gt;Update();<br>  kernel = kernel_generator-&gt;GetOutput();<br>  convolve_test( imreader-&gt;GetOutput(), kernel);<br>  /* Write the Gaussian */<br>  writer-&gt;SetFileName(&quot;Gaussian-1.nii&quot;);<br>
  writer-&gt;SetInput(kernel);<br>  writer-&gt;Update();<br> <br>  return 0;<br>}<br>