Hi Dan,&nbsp;<div><br></div><div>Many thanks for this info.&nbsp;</div><div>I had a brief look at this already.&nbsp;</div><div>Just that I have 3D images of average size 3000 * 1800 * 15, that convolution becomes almost a no show.</div>
<div><br></div><div>Regards</div><div><br></div><div>Saurabh</div><div><br></div><div><br><br><div class="gmail_quote">On Mon, Nov 24, 2008 at 12:54 PM, Dan Mueller <span dir="ltr">&lt;<a href="mailto:dan.muel@gmail.com">dan.muel@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Hi Saurabh,<br>
<br>
Welcome to ITK!<br>
<br>
I can&#39;t respond regarding your FFT issues/questions, however if your<br>
convolution kernels are small (or computation time is not an issue)<br>
then you may consider computing the convolution directly.<br>
<br>
Section 11.4 of the ITK Software Guide describes how to do this using<br>
neighborhood iterators. This part of the software guide is generated<br>
from:<br>
 &nbsp; &nbsp;Examples\Iterators\NeighborhoodIterators4.cxx<br>
<br>
HTH<br>
<br>
Regards, Dan<br>
<br>
2008/11/24 Saurabh Sethi &lt;<a href="mailto:sethi.saurabh@gmail.com">sethi.saurabh@gmail.com</a>&gt;:<br>
<div><div></div><div class="Wj3C7c">&gt; Hi All,<br>
&gt;<br>
&gt; I recently started using the ITK after a lot of word of mouth publicity from<br>
&gt; peer groups :)<br>
&gt;<br>
&gt; And I must say that im very impressed by it.<br>
&gt;<br>
&gt; Have been going through all of the Software guide and Message Archives since<br>
&gt; some time now.<br>
&gt;<br>
&gt; I have a bit of problem with the FFT / IFFT implementation. There is some<br>
&gt; &quot;Access Violation&quot; that I&#39;m unable to fix since some time.<br>
&gt;<br>
&gt; Maybe I have used the Complex Image in a wrong ( read Silly) way which I&#39;m<br>
&gt; unable to debug now.<br>
&gt;<br>
&gt; It would be great if someone could help -&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; I need to convolve two images (one is the test image, and other is my data<br>
&gt; image)<br>
&gt;<br>
&gt; For this, I had thought of first doing the FFT, then Multiplying both the<br>
&gt; images and taking the IFFT in the end.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Here is my pseudo code:<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; read image 1 (im1)<br>
&gt;<br>
&gt; Padd the image to nearest power of 2.<br>
&gt;<br>
&gt; compute its FFT. (I&#39;m using FFTRealToComplexConjugateImageFilter)<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; read image 2. (im2)<br>
&gt;<br>
&gt; Padd the image to the same power of 2.<br>
&gt;<br>
&gt; compute its FFT.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Multiply both the images<br>
&gt;<br>
&gt; MultiplyImageFilter-&gt;SetInput1(fft_input);<br>
&gt;<br>
&gt; MultiplyImageFilter-&gt;SetInput2(fft_weight);<br>
&gt;<br>
&gt; MultiplyImageFilter-&gt;Update();<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; IT is here that this strange error occurs:<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Unhandled exception at 0x0046193a in ItkScatter.exe: 0xC0000005: Access<br>
&gt; violation reading location 0x61371000.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; And the code breaks in at this place &nbsp;in file<br>
&gt; itkDefaultPixelAccessorFunctor.h:<br>
&gt;<br>
&gt; inline const ExternalPixelType Get( const InternalPixelType &amp; input ) const<br>
&gt;<br>
&gt; {<br>
&gt;<br>
&gt; &nbsp; &nbsp;return m_PixelAccessor.Get( input );<br>
&gt;<br>
&gt; }<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Below is the relevant part of the code:<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; typedef itk::FFTRealToComplexConjugateImageFilter&lt;pixelTypeC, dim2D&gt;<br>
&gt; FFTFilterType;<br>
&gt;<br>
&gt; typedef itk::FFTComplexConjugateToRealImageFilter&lt;pixelTypeC, dim2D&gt;<br>
&gt; IFFTFilterType;<br>
&gt;<br>
&gt; typedef FFTFilterType::OutputImageType ComplexImageType;<br>
&gt;<br>
&gt; typedef itk::MultiplyImageFilter&lt;ComplexImageType, ComplexImageType,<br>
&gt; ComplexImageType&gt;MultiplyImageFilterType;//&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; constPadImage-&gt;SetPadLowerBound(paddin);// specifying padding options<br>
&gt;<br>
&gt; constPadImage-&gt;SetPadUpperBound(paddin);<br>
&gt;<br>
&gt; constPadImage-&gt;SetInput(inputImage_C); // set padding filter input.<br>
&gt;<br>
&gt; fftFilter-&gt;SetInput(constPadImage-&gt;GetOutput()); //set the fft.<br>
&gt;<br>
&gt; ComplexImageType::Pointer fft_input = fftFilter-&gt;GetOutput(); // fft filter<br>
&gt; done on image.<br>
&gt;<br>
&gt; fftFilter-&gt;Update();<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; constPadImage2-&gt;SetPadUpperBound(paddin_wt_upper);<br>
&gt;<br>
&gt; constPadImage2-&gt;SetInput(inputImage2); // set padding filter input.<br>
&gt;<br>
&gt; fft_wtFilter-&gt;SetInput(constPadImage2-&gt;GetOutput()); //set the fft.<br>
&gt;<br>
&gt; ComplexImageType::Pointer fft_weight= fft_wtFilter-&gt;GetOutput();// fft<br>
&gt; filter done on image.<br>
&gt;<br>
&gt; fft_wtFilter-&gt;Update();<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; MultiplyImageFilter-&gt;SetInput1(fft_input);<br>
&gt;<br>
&gt; MultiplyImageFilter-&gt;SetInput2(fft_weight);<br>
&gt;<br>
&gt; MultiplyImageFilter-&gt;Update() // Error occurs here.<br>
&gt;<br>
&gt; ifftFilter-&gt;SetInput(MultiplyImageFilter-&gt;GetOutput());<br>
&gt;<br>
&gt; ifftFilter-&gt;Update();<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Hi,Many thanks<br>
&gt;<br>
&gt; Saurabh<br>
&gt;<br>
&gt; New ITKer..<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; 2008/11/21 chensiqi &lt;<a href="mailto:pidanchen@hotmail.com">pidanchen@hotmail.com</a>&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Hi, ITKers,<br>
&gt;&gt;<br>
&gt;&gt; Does anybody know how to load sequence items using ITK? Such as &quot;ROI<br>
&gt;&gt; Contour Sequence&quot;.<br>
&gt;&gt; Or if you know how to do it in GDCM, and integrate into ITK, that will<br>
&gt;&gt; also be very helpful.<br>
&gt;&gt;<br>
&gt;&gt; Thanks<br>
&gt;&gt; Siqi<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; ________________________________<br>
&gt;&gt; 更多热辣资讯尽在新版MSN首页! 立刻访问!<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; Insight-users mailing list<br>
&gt;&gt; <a href="mailto:Insight-users@itk.org">Insight-users@itk.org</a><br>
&gt;&gt; <a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Insight-users mailing list<br>
&gt; <a href="mailto:Insight-users@itk.org">Insight-users@itk.org</a><br>
&gt; <a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br>
&gt;<br>
&gt;<br>
</div></div></blockquote></div><br></div>