[Insight-users] image reader update error

Ashish Singh mrasingh at gmail.com
Thu Jan 11 16:07:40 EST 2007


Thanks Dan. I tried this. It still doesn't work.Now I get an unhandled
exception at 0x00406515 in my exe file.

On 1/11/07, Daniel Mace <dlm19 at duke.edu> wrote:
>
> Ashish,
>
> I think I ran into the same problem a while ago.  I ended up replacing
> the code with the following
> -----------------------------------------
> const vector<string> &fileNames =  nameGenerator->GetInputFileNames();
> -----------------------------------------
>
> and then set the file names by calling
>
> ---------------------------------------------
> reader->SetFileName( fileNames[i].c_str());
> ---------------------------------------------
>
> More of a quick fix for me (as I was returning to C++ after an 8 year
> hiatus), and I'm sure there is something more efficient.  Try making
> that change and let me know if it works.
>
> Cheers,
> Dan
>
> Ashish Singh wrote:
> > Thanks for replying Dan. Yes that's what it is,
> > reader->SetFileName(fileNames[fni]).
> > The fname was a typo in my previous message,sorry for that. It doesn't
> > work with
> > reader->SetFileName(fileNames[fni])
> >
> > The exact error message is a pop up box, titled Microsft Visual C++
> > debug Library. It reads-
> > ---------
> > Debug Assertion Failed!
> > Program:...
> > File: C:\program Files(x86)\Microsft Visual Studio 8\VC\include\vector
> > Line: 756
> >
> > Expression: vector subscript out of range
> >
> > For information on how your program can cause assertion failure, see
> > the Visual C++ documentation on asserts.
> >
> > abort-retry-ignore
> > --------
> >
> > Do you know what is going wrong here?
> >
> > Thanks,
> > Ashish
> >
> > On 1/11/07, *Daniel Mace* <dlm19 at duke.edu <mailto:dlm19 at duke.edu>>
> wrote:
> >
> >     Ashish,
> >
> >     What's the exact error message that it gives you?  Also, where do
> you
> >     set "fname".  perhaps it should be:
> >     -----------
> >     reader->SetFileName(fileNames[fni])
> >     --------
> >     unless you set fname somewhere else in the code that isn't present.
> >
> >     Cheers,
> >     Dan
> >
> >     Ashish Singh wrote:
> >     > Hi,
> >     >
> >     > I am a newbie to ITK. I was trying to read a set of dicom images
> >     from
> >     > a directory and then use reader->update() to process each one of
> >     them
> >     > one after the other. But the reader->update() gives me an error
> >     after
> >     > reading the first image. Can anyone please tell me how to fix this
> >     > problem?
> >     >
> >     > This is what my code looks like. It is not the complete code,
> >     but only
> >     > the relevant part of it.
> >     > ---------------
> >     >   typedef itk::GDCMSeriesFileNames NamesGeneratorType;
> >     >   NamesGeneratorType::Pointer nameGenerator =
> >     NamesGeneratorType::New();
> >     >   nameGenerator->SetInputDirectory( "D:\\testimages"  );
> >     >
> >     >   typedef std::vector<std::string> FileNamesContainer;
> >     >   FileNamesContainer fileNames =
> nameGenerator->GetInputFileNames();
> >     >     unsigned int numberOfFilenames =  fileNames.size();
> >     >   std::cout << numberOfFilenames << std::endl;
> >     >   unsigned int fni;
> >     >
> >     >   for(fni = 0; fni<numberOfFilenames; fni++)
> >     >     {
> >     >     std::cout << "filename # " << fni << " = ";
> >     >     std::cout << fileNames[fni] << std::endl;
> >     >     }
> >     >
> >     >   for(fni = 0; fni<numberOfFilenames; fni++)
> >     >   {
> >     >   reader->SetFileName( fname);
> >     >
> >     >   reader->SetImageIO( gdcmImageIO );
> >     >
> >     >   try
> >     >     {
> >     >         reader->Update();//this is where it gives me an error
> second
> >     > time in the loop.
> >     >     }
> >     >   catch (itk::ExceptionObject & e)
> >     >     {
> >     >     std::cerr << "exception in file reader " << std::endl;
> >     >     std::cerr << e << std::endl;
> >     >     return EXIT_FAILURE;
> >     >     }
> >     > // code for processing the image //
> >     > //code for writing the processed image//
> >     > }// for loop complete
> >     > --------------------------------------
> >     > The filenames are correctly read, the code runs fine the first
> time
> >     > through the for loop, but second time it gives an error at the
> >     > reader->Update() line.
> >     > Can anyone please tell me why is this happening and how to fix it?
> >     >
> >     > Thanks,
> >     > Ashish
> >     >
> >     >
> >     >
> >
> ------------------------------------------------------------------------
> >
> >     >
> >     > _______________________________________________
> >     > Insight-users mailing list
> >     > Insight-users at itk.org <mailto:Insight-users at itk.org>
> >     > http://www.itk.org/mailman/listinfo/insight-users
> >     >
> >
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://public.kitware.com/pipermail/insight-users/attachments/20070111/ffe7ee13/attachment.htm


More information about the Insight-users mailing list