[Insight-developers] itkGDCMImageIO and itkImageSeriesReader problem

Luis Ibanez luis.ibanez at kitware.com
Tue Jan 18 10:44:48 EST 2011


Hi Patrick,


1) Please try the example:

ITK/Code/IO/DicomPrintPatientInformation.cxx

(from today's Git version),

To see if you can get that tag from that specific DICOM file.

No changes have been made to the metadata dictionary
itself, so, this may be a secondary effect from migrating
to GDCM 2.0.... we need your help to track the real source
of the problem.



2)  Problem 2, has always been there,

      If you reuse a reader, you must call

           reader->UpdateLargestPossibleRegion()

       instead of simply calling

           reader->Update().


This is because a call to Update() doesn't recompute
the largest size of the image.

This applies to both the ImageFileReader and the
ImageSeriesReader.


     Luis


----------------------------------------------------------------------------------
On Fri, Jan 14, 2011 at 1:49 PM, Patrick Cheng
<cheng at isis.georgetown.edu> wrote:
> Hi All,
>
> Recent changes in ITK (I am using nightly build as of Jan 12, 2011) broke
> our code in IGSTK.
>
> There are two issues emerged:
>
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> Problem 1: Fail to expose DICOM tags.
>
>  itk::MetaDataDictionary & dict = m_ImageIO->GetMetaDataDictionary();
>
>  tagkey = "0018|1120";
>
>  if( itk::ExposeMetaData<std::string>(dict,tagkey, m_GantryTilt ) )
>    {
>    ..... // Will not reach here
>    }
>
> Are these code still valid for checking DICOM tags?
>
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> Problem 2: Memory effect of the GDCMImageIO class
> This happens when we ask the m_ImageSeriesReader to read a new set of image
> that is smaller than the old one, it will throw an exception:
>
>   m_ImageIO = itk::GDCMImageIO::New();
>   m_ImageIO->SetGlobalWarningDisplay(this->GetGlobalWarningDisplay());
>   m_ImageSeriesReader = ImageSeriesReaderType::New();
>   m_ImageSeriesReader->SetImageIO( m_ImageIO );
>   ........
>   m_ImageSeriesReader->SetFileNames( m_FileNames->GetFileNames(
>                                                  seriesUID.front().c_str()
> )  );
>   ........
>   try
>     {
>     m_ImageSeriesReader->Update();
>     }
>   catch( itk::ExceptionObject & excp )
>     {
>     ....//Exception: Requested region is (at least partially) outside
> region.
>     }
>
> It looks like the ImageSeriesReader needs to be reset every time it accepts
> new file names.
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Thank you,
>
> Patrick
>
>
> _______________________________________________
> 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.html
>
> 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