<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;"><DIV>Hi, guys: </DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; When I use ITK respectively in C++ and Pyhton, with similar set up, (here I mean same registration method, metric, optimizer and interpolator), C++&nbsp;&nbsp;version allow me register more slice than python version.&nbsp;It is quite strange for me. I can&nbsp;see from the taks manager&nbsp;that PF usage for C++ version&nbsp;can reach 2.89GB, but python version usually stay below 2GB. Does anyone has similar experinces? </DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; In addition, I can get reasonable registration result in C++ version. BUT the program report Debug error when the application&nbsp; try to write the difference image into a file </DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the code like this </DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=2></DIV>
<DIV></FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>typedef</FONT></FONT><FONT size=2> itk::ResampleImageFilter&lt;MovingImageType, </DIV>
<DIV>FixedImageType &gt; ResampleFilterType;</DIV>
<DIV>&nbsp;</DIV>
<DIV>TransformType::Pointer finalTransform = TransformType::New();</DIV>
<DIV>finalTransform-&gt;SetParameters( finalParameters );</DIV>
<DIV>ResampleFilterType::Pointer resample = ResampleFilterType::New();</DIV>
<DIV>resample-&gt;SetTransform( finalTransform );</DIV>
<DIV>resample-&gt;SetInput( intensityWindowing_moving-&gt;GetOutput() );</DIV>
<DIV>FixedImageType::Pointer fixedImage = intensityWindowing_fixed-&gt;GetOutput();</DIV>
<DIV>PixelType backgroundGrayLevel = 0;</DIV>
<DIV></FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2></FONT></FONT>&nbsp;</DIV>
<DIV><FONT color=#0000ff size=2><FONT color=#0000ff size=2>if</FONT></FONT><FONT size=2>( argc &gt; 4 )</DIV>
<DIV>{</DIV>
<DIV>backgroundGrayLevel = atoi( argv[4] );</DIV>
<DIV>}</DIV>
<DIV>&nbsp;</DIV>
<DIV>resample-&gt;SetSize( fixedImage-&gt;GetLargestPossibleRegion().GetSize() );</DIV>
<DIV>resample-&gt;SetOutputOrigin( fixedImage-&gt;GetOrigin() );</DIV>
<DIV>resample-&gt;SetOutputSpacing( fixedImage-&gt;GetSpacing() );</DIV>
<DIV>resample-&gt;SetOutputDirection( fixedImage-&gt;GetDirection() );</DIV>
<DIV>resample-&gt;SetDefaultPixelValue( backgroundGrayLevel );</DIV>
<DIV>&nbsp;</DIV>
<DIV></FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>typedef</FONT></FONT><FONT size=2> </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>unsigned</FONT></FONT><FONT size=2> </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>char</FONT></FONT><FONT size=2> OutputPixelType;</DIV>
<DIV></FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>typedef</FONT></FONT><FONT size=2> itk::Image&lt; OutputPixelType, Dimension &gt; OutputImageType;</DIV>
<DIV></DIV>
<DIV></FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>typedef</FONT></FONT><FONT size=2> itk::CastImageFilter&lt; </DIV>
<DIV>FixedImageType,</DIV>
<DIV>OutputImageType &gt; CastFilterType;</DIV>
<DIV></DIV>
<DIV></FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>typedef</FONT></FONT><FONT size=2> itk::ImageFileWriter&lt; OutputImageType &gt; WriterType;</DIV>
<DIV>&nbsp;</DIV>
<DIV>WriterType::Pointer writer = WriterType::New();</DIV>
<DIV>CastFilterType::Pointer caster = CastFilterType::New();</DIV>
<DIV>WriterType::Pointer writer_diff = WriterType::New();</DIV></FONT><FONT color=#008000 size=2><FONT color=#008000 size=2>
<DIV>&nbsp;</DIV>
<DIV>writer-&gt;SetFileName( argv[3] );</DIV>
<DIV></DIV>
<DIV>writer-&gt;SetImageIO( vtkIO );</DIV>
<DIV>caster-&gt;SetInput( resample-&gt;GetOutput() );</DIV>
<DIV>writer-&gt;SetInput( caster-&gt;GetOutput() );</DIV>
<DIV>writer-&gt;Update();</DIV>
<DIV>&nbsp;</DIV></FONT></FONT><FONT size=2>
<DIV></FONT><FONT color=#008000 size=2><FONT color=#008000 size=2>// Software Guide : BeginCodeSnippet</DIV></FONT></FONT><FONT size=2>
<DIV></FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>typedef</FONT></FONT><FONT size=2> itk::SubtractImageFilter&lt; </DIV>
<DIV>FixedImageType, </DIV>
<DIV>FixedImageType, </DIV>
<DIV>FixedImageType &gt; DifferenceFilterType;</DIV>
<DIV>DifferenceFilterType::Pointer difference = DifferenceFilterType::New();</DIV></FONT><FONT size=2>
<DIV></FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>typedef</FONT></FONT><FONT size=2> itk::RescaleIntensityImageFilter&lt; </DIV>
<DIV>FixedImageType, </DIV>
<DIV>FixedImageType &gt; RescalerType;</DIV>
<DIV>RescalerType::Pointer intensityRescaler = RescalerType::New();</DIV></FONT><FONT size=2>
<DIV></FONT><FONT color=#008000 size=2><FONT color=#008000 size=2></FONT></FONT>&nbsp;</DIV>
<DIV><FONT color=#008000 size=2><FONT color=#008000 size=2>// After registration</DIV></FONT></FONT><FONT size=2>
<DIV></FONT><FONT color=#008000 size=2><FONT color=#008000 size=2>// resample-&gt;SetTransform( finalTransform ); </DIV></FONT></FONT><FONT size=2>
<DIV></DIV>
<DIV>difference-&gt;SetInput2( fixedImage );</DIV>
<DIV>difference-&gt;SetInput1( resample-&gt;GetOutput() );</DIV>
<DIV></DIV>
<DIV>intensityRescaler-&gt;SetInput( difference-&gt;GetOutput() );</DIV>
<DIV>intensityRescaler-&gt;SetOutputMinimum( 0 );</DIV>
<DIV>intensityRescaler-&gt;SetOutputMaximum( 255 );</DIV>
<DIV>caster-&gt;SetInput( intensityRescaler-&gt;GetOutput() );</DIV>
<DIV>writer_diff-&gt;SetImageIO( vtkIO );</DIV>
<DIV>writer_diff-&gt;SetInput( caster-&gt;GetOutput() );</DIV>
<DIV></DIV></FONT><FONT color=#008000 size=2><FONT color=#008000 size=2>
<DIV>// if( argc &gt;5 )</DIV></FONT></FONT><FONT size=2>
<DIV>{</DIV>
<DIV>writer_diff-&gt;SetFileName( argv[3] );</DIV>
<DIV>writer_diff-&gt;Update(); </DIV>
<DIV>}</DIV></FONT>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; The resample use the final transformation to correct the moving image and the subtractImageFilter calculate the difference after registration. . </DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Thanks! </DIV>
<DIV>&nbsp;</DIV>
<DIV>Wen </DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV></td></tr></table><br>