[Insight-users] container for iterators of images

alex Dowson alexdowson at hotmail.com
Mon Apr 23 09:51:36 EDT 2012


Hi

I think I still did not understand your problem completely .  Why you want to store image in container ?  Can you describe what exactly you trying to do ?


Alex


From: Hila Hiler 
Sent: Monday, April 23, 2012 7:15 PM
To: alex Dowson 
Cc: insight-users at itk.org 
Subject: Re: [Insight-users] container for iterators of images

Hi Alex,
first of all, many thanks for the response.

I'm afraid that you haven't noticed that I did the same as described in your link (it was the easy part) ...
Actually my question was about a vector of iterators to itk images.
Please, read my attached code. I'll be pleased to understand what have I missed.

Regards,
Hila



On Mon, Apr 23, 2012 at 4:08 PM, alex Dowson <alexdowson at hotmail.com> wrote:

  Hi

  Look at this examples


  http://www.itk.org/Wiki/ITK/Examples/Iterators/ImageRegionConstIterator 
  http://www.itk.org/Wiki/ITK/Examples/Iterators/ImageRegionIterator 







  From: Hila Hiler 
  Sent: Monday, April 23, 2012 5:57 PM
  To: insight-users at itk.org 
  Subject: [Insight-users] container for iterators of images

  Hi All,

  I'd like to generate a new image by summarizing some other images in the same dimensions.
  So I generated a new image and a std::list for the images iterators. (actually, I thought that this dynamic container is the best way to mange an unknown number of images)

  For now, it isn't working because I don't know how to forward the image's iterator from that vector. in other words, how do I do the same as: output_it++ from a vector?

  Here is my code:

      typedef itk::ImageRegionIterator            <ImageType>            iteratorType;
      typedef itk::ImageRegionConstIterator    <ImageType>            constIteratorType;

      constIteratorType    first_it    (first_img, first_img->GetRequestedRegion()); 
      iteratorType            output_it (output_img, output_img-> GetRequestedRegion());

      std::list<constIteratorType> list;
      std::list<constIteratorType>::iterator it;

      list.push_back(first_it);

      if (second_img.IsNotNull())
      {
          constIteratorType second_it (second_img, second_img->GetRequestedRegion()); 
          list.push_back (second_it);
      }

      //initialize all the iterators at the begin of input images
      for(it = list.begin(); it < list.end(); it++)
      {
          it->GoToBegin();
      }

      for(output_it.GoToBegin(); !output_it.IsAtEnd(); ++output_it)
      {
          for(it = list.begin(); it < list.end(); it++)//move on the images and get at each iteration the pixel value and insert to the new image
          {
              output_val = it->Get() + output_val;  //get values from each image and insert in the output image
              // How do I forward the image's iterator from here ?????
          }
         
          output_it.Set(output_val);

      }



  Any thoughts would be very welcome ...
  Hila


------------------------------------------------------------------------------
  _____________________________________
  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://www.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-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20120423/d38ea26d/attachment.htm>


More information about the Insight-users mailing list