<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:times new roman, new york, times, serif;font-size:12pt"><DIV><BR></DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif"><FONT face="Times New Roman">Dear All:</FONT></DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif"><FONT face="Times New Roman"></FONT>&nbsp;</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif"><FONT face="Times New Roman">I am trying to do some resampling of image throuth template function. Below is example of my main program.</FONT></DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif"><FONT face="Times New Roman"></FONT>&nbsp;</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif"><FONT face="Times New Roman">In the main program, I read an image and give inputimage=reader-&gt;GetOutput().</FONT></DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif"><FONT face="Times New Roman">I decalare another image pointer,</FONT><FONT face=Arial>OutputImageType::Pointer image_high=OutputImageType::New();</FONT></DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif"><FONT face="Times New Roman">both image pass to the tempalte functin as below</FONT></DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif"><FONT face="Times New Roman"></FONT>&nbsp;</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">&nbsp;IsotropicResample &lt;3,InputImageType,OutputImageType,double&gt; (inputimage,image_high,scale);</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">&nbsp;</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">{ my template fucntion delcared as:</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">&nbsp;</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">&nbsp;template &lt;unsigned int Dim,class TInputFilter, class TInternalFilter, class TScale&gt;
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">void IsotropicResample( TInputFilter* InputFilter, TInternalFilter* InternalFilter, TScale scale)<BR></DIV></DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">&nbsp;</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">}</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">&nbsp;</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">In the template function, I got the reampled image as following :</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">&nbsp;</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">&nbsp;resampler-&gt;Update();<BR>&nbsp;&nbsp; InternalFilter=resampler-&gt;GetOutput();<BR>&nbsp;&nbsp; writer-&gt;SetFileName("../data/out_test.hdr");<BR>&nbsp;&nbsp; writer-&gt;SetInput(InternalFilter);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer-&gt;Update();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp; catch( itk::ExceptionObject &amp; excep )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; std::cerr &lt;&lt; "Exception caught !" &lt;&lt; std::endl;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; std::cerr &lt;&lt; excep &lt;&lt; std::endl;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">&nbsp;</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">I checked the result, the resampled image by the above writer is correct.</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">&nbsp;</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">but I got empty image when I tried to write image_high defined in the main function. </DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">&nbsp;</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">Can somebody tell me what will be the&nbsp;probolem</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">&nbsp;</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">Baoyun<BR></DIV></DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif"><FONT face="Times New Roman">////code in the main program</FONT></DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif"><FONT face="Times New Roman"></FONT>&nbsp;</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">&nbsp; reader-&gt;SetFileName(argv[1]);</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">&nbsp;&nbsp;InputImageType::Pointer inputimage=InputImageType::New();<BR>&nbsp; OutputImageType::Pointer image_high=OutputImageType::New();</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">&nbsp;</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">&nbsp;&nbsp;&nbsp;InputImageType::Pointer inputimage=InputImageType::New();<BR>&nbsp; OutputImageType::Pointer image_high=OutputImageType::New();</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif"><BR>&nbsp; try <BR>&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp; reader-&gt;Update();<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp; catch( itk::ExceptionObject &amp; excep )<BR>&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp; std::cerr &lt;&lt; "Exception caught!" &lt;&lt; std::endl;<BR>&nbsp;&nbsp;&nbsp; std::cerr &lt;&lt; excep &lt;&lt; std::endl;<BR>&nbsp;&nbsp;&nbsp; }</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">inputimage=reader-&gt;GetOutput();</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">&nbsp;</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">&nbsp;IsotropicResample &lt;3,InputImageType,OutputImageType,double&gt; (inputimage,image_high,scale);</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">&nbsp;</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">////template function<BR><BR>#ifndef _IsotropicResample_H_<BR>#define _IsotropicResample_H_</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif"><BR>#if defined(_MSC_VER)<BR>#pragma warning ( disable : 4786 )<BR>#endif</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">#ifdef __BORLANDC__<BR>#define ITK_LEAN_AND_MEAN<BR>#endif</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif"><BR>#include "itkImage.h"<BR>#include "itkImageFileReader.h"<BR>#include "itkImageFileWriter.h"</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">// Software Guide : BeginCodeSnippet<BR>#include "itkResampleImageFilter.h"<BR>#include "itkRecursiveGaussianImageFilter.h"<BR>// Software Guide : EndCodeSnippet</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">&nbsp;</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">&nbsp;</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif"><BR>// Software Guide : BeginCodeSnippet<BR>#include "itkIdentityTransform.h"<BR>#include "itkLinearInterpolateImageFunction.h"<BR>#include "itkAffineTransform.h"<BR>// Software Guide : EndCodeSnippet</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">// Software Guide : BeginCodeSnippet<BR>#include "itkIntensityWindowingImageFilter.h"<BR>#include "itkCastImageFilter.h"<BR>#include &lt;itkWindowedSincInterpolateImageFunction.h&gt; </DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">#include "itkBSplineInterpolateImageFunction.h"</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif"><BR>// Software Guide : EndCodeSnippet</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">&nbsp;</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif"><BR>//template &lt;class TInputFilter, class TInternalFilter, class TScale&gt;</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">//void IsotropicResample( TInputFilter* InputFilter, TInternalFilter* InternalFilter, TScale scale);</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif"><BR>template &lt;unsigned int Dim,class TInputFilter, class TInternalFilter, class TScale&gt;</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">void IsotropicResample( TInputFilter* InputFilter, TInternalFilter* InternalFilter, TScale scale)<BR>{<BR>&nbsp; </DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">&nbsp; typedef&nbsp; TInputFilter InputImageType;<BR>&nbsp; typedef TInternalFilter OutputImageType;<BR>&nbsp; typedef&nbsp;&nbsp; float&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; InternalPixelType;<BR>&nbsp; typedef itk::Image&lt; InternalPixelType, Dim &gt;&nbsp;&nbsp; InternalImageType;</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif"><BR>&nbsp; typename InputImageType::ConstPointer inputImage = InputFilter;<BR></DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">&nbsp; typename InputImageType::SpacingType inputSpacing= inputImage-&gt;GetSpacing();<BR></DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">///// do reampling</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">&nbsp;&nbsp;<BR>&nbsp;&nbsp; resampler-&gt;SetSize( size );<BR>&nbsp;&nbsp; resampler-&gt;Update();<BR>&nbsp;&nbsp; InternalFilter=resampler-&gt;GetOutput();<BR>&nbsp;&nbsp; writer-&gt;SetFileName("../data/out_test.hdr");<BR>&nbsp;&nbsp; writer-&gt;SetInput(InternalFilter);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer-&gt;Update();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp; catch( itk::ExceptionObject &amp; excep )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; std::cerr &lt;&lt; "Exception caught !" &lt;&lt; std::endl;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; std::cerr &lt;&lt; excep &lt;&lt; std::endl;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;<BR>// </DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif"><BR>};</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">&nbsp;</DIV>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">#endif<BR></DIV></DIV></div><br>

      </body></html>