<br>Hi Kevin,<br><br>                                 What is your Platform ?<br><br>You could do a quick test:<br><br>Attempt to allocate two arrays of 2GB each in your python interpreter.<br><br><br>For example:<br><br><br>
import array<br>mega = 1024 * 1024<br>N = 500<br>a = array.array(&#39;B&#39;, [0] * N * mega )<br><br><br>and see how far you can get with N ....<br><br><br>In my Linux Ubuntu, with 4Gb ram and Python 2.5.2 <br>I got up to 500 Mb, an the system monitor matches<br>
the allocated memory for the python process to <br><br>On a Windows 64 bits machine with Windows Vista<br>and Python 2.5 (Windows installation), I got up to<br>300 Mb, and the Task manager indicated that the<br>python process was using 300 Mb.<br>
<br><br>There are probably much better ways of testing the<br>memory limits...<br><br><br>--------------<br><br>About your registration, what file format are you <br>using for writing the output ?<br><br><br>      Luis<br>
<br><br><br>---------------------------------------------------------------------------------------------------------------<br><div class="gmail_quote">On Mon, Jul 13, 2009 at 8:45 AM, kevin cavin <span dir="ltr">&lt;<a href="mailto:beibeiwen2003@yahoo.com">beibeiwen2003@yahoo.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td style="font-family: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; font-size: inherit; line-height: inherit; font-size-adjust: inherit; font-stretch: inherit;" valign="top">
<div>Hi, guys: </div>
<div> </div>
<div>           When I use ITK respectively in C++ and Pyhton, with similar set up, (here I mean same registration method, metric, optimizer and interpolator), C++  version allow me register more slice than python version. It is quite strange for me. I can see from the taks manager that PF usage for C++ version can reach 2.89GB, but python version usually stay below 2GB. Does anyone has similar experinces? </div>

<div> </div>
<div>         In addition, I can get reasonable registration result in C++ version. BUT the program report Debug error when the application  try to write the difference image into a file </div>
<div> </div>
<div>       the code like this </div>
<div> </div>
<div> </div>
<div>      <font size="2"></font></div>
<div><font size="2" color="#0000ff"><font size="2" color="#0000ff">typedef</font></font><font size="2"> itk::ResampleImageFilter&lt;MovingImageType, </font></div>
<div>FixedImageType &gt; ResampleFilterType;</div>
<div> </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 size="2" color="#0000ff"><font size="2" color="#0000ff"></font></font> </div>
<div><font size="2" color="#0000ff"><font size="2" color="#0000ff">if</font></font><font size="2">( argc &gt; 4 )</font></div>
<div>{</div>
<div>backgroundGrayLevel = atoi( argv[4] );</div>
<div>}</div>
<div> </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> </div>
<div><font size="2" color="#0000ff"><font size="2" color="#0000ff">typedef</font></font><font size="2"> </font><font size="2" color="#0000ff"><font size="2" color="#0000ff">unsigned</font></font><font size="2"> </font><font size="2" color="#0000ff"><font size="2" color="#0000ff">char</font></font><font size="2"> OutputPixelType;</font></div>

<div><font size="2" color="#0000ff"><font size="2" color="#0000ff">typedef</font></font><font size="2"> itk::Image&lt; OutputPixelType, Dimension &gt; OutputImageType;</font></div>
<div></div>
<div><font size="2" color="#0000ff"><font size="2" color="#0000ff">typedef</font></font><font size="2"> itk::CastImageFilter&lt; </font></div>
<div>FixedImageType,</div>
<div>OutputImageType &gt; CastFilterType;</div>
<div></div>
<div><font size="2" color="#0000ff"><font size="2" color="#0000ff">typedef</font></font><font size="2"> itk::ImageFileWriter&lt; OutputImageType &gt; WriterType;</font></div>
<div> </div>
<div>WriterType::Pointer writer = WriterType::New();</div>
<div>CastFilterType::Pointer caster = CastFilterType::New();</div>
<div>WriterType::Pointer writer_diff = WriterType::New();</div><font size="2" color="#008000"><font size="2" color="#008000">
<div> </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> </div></font></font><font size="2">
<div></div></font><font size="2" color="#008000"><font size="2" color="#008000">// Software Guide : BeginCodeSnippet</font></font><font size="2">
<div></div></font><font size="2" color="#0000ff"><font size="2" color="#0000ff">typedef</font></font><font size="2"> itk::SubtractImageFilter&lt; 
<div>FixedImageType, </div>
<div>FixedImageType, </div>
<div>FixedImageType &gt; DifferenceFilterType;</div>
<div>DifferenceFilterType::Pointer difference = DifferenceFilterType::New();</div></font><font size="2">
<div></div></font><font size="2" color="#0000ff"><font size="2" color="#0000ff">typedef</font></font><font size="2"> itk::RescaleIntensityImageFilter&lt; 
<div>FixedImageType, </div>
<div>FixedImageType &gt; RescalerType;</div>
<div>RescalerType::Pointer intensityRescaler = RescalerType::New();</div></font><font size="2">
<div></div></font><font size="2" color="#008000"><font size="2" color="#008000"></font></font> 
<div><font size="2" color="#008000"><font size="2" color="#008000">// After registration</font></font></div><font size="2">
<div></div></font><font size="2" color="#008000"><font size="2" color="#008000">// resample-&gt;SetTransform( finalTransform ); </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 size="2" color="#008000"><font size="2" color="#008000">
<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> </div>
<div>        The resample use the final transformation to correct the moving image and the subtractImageFilter calculate the difference after registration. . </div>
<div> </div>
<div>        Thanks! </div>
<div> </div>
<div>Wen </div>
<div> </div>
<div> </div>
<div> </div></td></tr></tbody></table><br>



      <br>_____________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at<br>
<a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the ITK FAQ at: <a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br>
<br></blockquote></div><br>