[ITK-users] Using ImageFileReader iteratively

Matt McCormick matt.mccormick at kitware.com
Tue Feb 2 21:17:04 EST 2016


Hi Gib,

It may be related to what is happening in "...".

Try

  im2->DisconnectPipeline();

after

  im2 = reader->GetOutput();

This will disassociate the output image from the reader object, and
the reader will create a new output image in the next iteration of the
loop.

HTH,
Matt

On Tue, Feb 2, 2016 at 6:48 PM, Gib Bogle <g.bogle at auckland.ac.nz> wrote:
> I am reading a set of 2D image files, like this:
>
> typedef itk::Image<unsigned char,2> ImageType2;        // 2D image
> ImageType2::Pointer im2;
> unsigned char *p2;
>
>     typedef itk::ImageFileReader<ImageType2> FileReaderType;
>     FileReaderType::Pointer reader = FileReaderType::New();
>
>     for (z=0; z<z2-z1-1; z++) {
>         ... // make frame_file
>         printf("frame_file: %s\n",frame_file);
>         reader->SetFileName(frame_file);
>         try
>         {
>             reader->Update();
>             printf("did reader->update\n");
>         }
>         catch (itk::ExceptionObject &e)
>         {
>             std::cout << e << std::endl;
>             return 2;
>         }
>
>         im2 = reader->GetOutput();
>         printf("got im2\n");
>         ...
>     }
>
> This reads the first 2D file, but the next time through the loop it crashes
> while executing reader->Update().
> What am I doing wrong?
>
> Thanks
> Gib
>
> _____________________________________
> 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://public.kitware.com/mailman/listinfo/insight-users
>


More information about the Insight-users mailing list