[Insight-developers] New ImageScanlineIterator

M.Staring at lumc.nl M.Staring at lumc.nl
Mon Apr 29 09:57:04 EDT 2013


Hi Brad,

Great work!

I'm not sure but the B-spline TransformPoint() and GetJacobian() functions loop with an image iterator over the coefficient images. Only over the support region, which is small, but in image registration this function is called an awful lot of times ...

Another option may be the resample filter: although the nonlinear route may not benefit that much, the linear route may (perhaps).

I will try to think of other places.

Thanks for this new iterator!
Marius

-----Original Message-----
From: insight-developers-bounces at itk.org [mailto:insight-developers-bounces at itk.org] On Behalf Of Bradley Lowekamp
Sent: maandag 29 april 2013 15:31
To: insight-developers at itk.org Developers
Subject: [Insight-developers] New ImageScanlineIterator

Hello,

I am seeking suggestions for additional places where this new iterator could be beneficial.

I have just merged an new image iterator, which has given up to 3.5x ( VS8 in 256x256 image ) performance improvement in basic binary functor image filters such as the AddImageFilter. 

https://github.com/Kitware/ITK/commit/ab29cc59095d7448a1dbf1e09f96947036d2b118

The way to use the new iterator is basically like this:

    while ( !inputIt1.IsAtEnd() )
      {
      while ( !inputIt1.IsAtEndOfLine() )
        {
        outputIt.Set( m_Functor( inputIt1.Get(), inputIt2.Get() ) );
        ++inputIt2;
        ++inputIt1;
        ++outputIt;
        }

      inputIt1.NextLine();
      inputIt2.NextLine();
      outputIt.NextLine();
      progress.CompletedPixel();
      }

The performance gain is from the removal of any conditionals in the inner loop which enable additional compiler optimizations and only updating the progress on a per line basis.

If anyone knows of the filters with tight looks which could benefit from this new iterator please let me know!

Thanks,
Brad


_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Kitware offers ITK Training Courses, for more information visit:
http://kitware.com/products/protraining.php

Please keep messages on-topic and check the ITK FAQ at:
http://www.itk.org/Wiki/ITK_FAQ

Follow this link to subscribe/unsubscribe:
http://www.itk.org/mailman/listinfo/insight-developers


More information about the Insight-developers mailing list