[Insight-users] DICOM Registration

Jon Haitz Legarreta jhlegarreta at vicomtech.org
Mon May 7 08:25:42 EDT 2012


Hi Jeff,
I haven't yet upgraded to ITK 4.1; in the meantime I tried with 3.18. There
are some differences because the BSpline transform at least has been
renamed and refactored.

For that version of ITK, the DeformableRegistration12 example is equivalent
to the one you are using. Note that it says that it is used for 2D images.
You should check whether any of the parameters beyond need to be changed
accordingly.

In any case, for the DeformableRegistration12 example I first got a crash
related to a memory allocation issue when the MateMutualInformationMetric
tries to set the size for the bspline transform:

m_BSplineTransformWeightsArray.SetSize(
        m_NumberOfSpatialSamples, m_NumBSplineWeights );

There was no information on the nature of the error; it simply crashed, but
looking into it, found that it was due to the lack of enough memory.

So check the size of your input image. You may want to try with a smaller
one and see what happens.

Also, if you want somebody else in the list to have a look at it, providing
the CMakeLists (even if it is  easy to build, as in this case) and the test
dataset is of help.

Providing some more information on the error you get is also useful.

Kind regards,
JON HAITZ



On 6 May 2012 21:43, uclao <ucllao at gmail.com> wrote:

> Dear Jon Haitz,
>
> Thank you for the reply. I tried to reproduce the result of the example and
> even change the metric type. It works well if the inputs are 2D images.
> However when I switch to 2D image series (DICOM), the same problem happens
> and the program crushes when the registration process begins.
>
> The following is a link to my source code. I checked every step but still
> couldn't figure out the problem. Could you please kindly take a look and
> give me a hand.
>
> http://dl.dropbox.com/u/64842806/DeformableRegistration12.cxx
>
> Again, thank you for your help.
>
> Regards
>
> Jeff
>
>
> Jon Haitz Legarreta Gorroño wrote
> >
> > Dear Jeff,
> > I would dare to say that the DICOM dictionary information provided is not
> > that important concerning your program not working. I think you shouldn't
> > be troubled by the information contained in the dictionary.
> >
> > The fact that the datasets are in different locations is not an issue to
> > ITK neither. Once you load them into memory, ITK does not need any
> further
> > information on their location.
> >
> > It looks like the reader successfully reads both series; the problem is
> > elsewhere.
> >
> > Please try to go step by step and see where the problem lies in reality.
> >
> > You may try to reproduce the result of the examples as it is to start
> > with.
> >
> > JON HAITZ
> >
> >
> >
> > On 2 May 2012 12:40, uclao &lt;ucllao@&gt; wrote:
> >
> >> Hi,
> >>
> >> I'm trying to register two sets of DICOM CT images locates in two
> >> separated
> >> directories. What I did is taking the sample code ImageRegistration8.cxx
> >> and
> >> replacing the image readers with image series readers, copied from
> >> http://www.itk.org/Wiki/ITK/Examples/DICOM/ResampleDICOM. Everything
> >> seems
> >> to be working until it gets to the registration part. Once it get to
> that
> >> line the program simply crushes with exit message "R6010 -abort() has
> >> been
> >> called". When I do fixedImageReader -> Print(std::cout) , I have the
> >> following printed:
> >>
> >> ImageSeriesReader (0431BC50)
> >>  RTTI typeinfo:   class itk::ImageSeriesReader<class itk::Image<float,3>
> >> >
> >>  Reference Count: 1
> >>  Modified Time: 116
> >>  Debug: Off
> >>  Observers:
> >>    none
> >>  No Inputs
> >>  Outputs:
> >>    Primary: (04125EA8)
> >>  NumberOfIndexedInputs: 0
> >>  NumberOfRequiredInputs: 0
> >>  NumberOfIndexedOutputs: 1
> >>  NumberOfRequiredOutputs: 1
> >>  Number Of Threads: 4
> >>  ReleaseDataFlag: Off
> >>  ReleaseDataBeforeUpdateFlag: Off
> >>  AbortGenerateData: Off
> >>  Progress: 1
> >>  Multithreader:
> >>    RTTI typeinfo:   class itk::MultiThreader
> >>    Reference Count: 1
> >>    Modified Time: 98
> >>    Debug: Off
> >>    Observers:
> >>      none
> >>    Thread Count: 4
> >>    Global Maximum Number Of Threads: 128
> >>    Global Default Number Of Threads: 4
> >>  ReverseOrder: 0
> >>  UseStreaming: 1
> >>  ImageIO:
> >>    GDCMImageIO (0411D5D8)
> >>      RTTI typeinfo:   class itk::GDCMImageIO
> >>      Reference Count: 3
> >>      Modified Time: 2977
> >>      Debug: Off
> >>      Observers:
> >>        none
> >>      AbortGenerateData: Off
> >>      Progress: 0
> >>      FileName: SS0001/S02A01_16/1.2.826.0.1.3680043.2.656.4.1.1.19.1.dcm
> >>      FileType: Binary
> >>      ByteOrder: LittleEndian
> >>      IORegion:
> >>        ImageIORegion (0411D650)
> >>          Dimension: 3
> >>          Index: 0 0 0
> >>          Size: 512 512 1
> >>      Number of Components/Pixel: 1
> >>      Pixel Type: scalar
> >>      Component Type: int
> >>      Dimensions: ( 512 512 1 )
> >>      Origin: ( -200.6 -160 -29.5 )
> >>      UseCompression: Off
> >>      UseStreamedReading: On
> >>      UseStreamedWriting: Off
> >>      Internal Component Type: unknown
> >>      RescaleSlope: 1
> >>      RescaleIntercept: -1024
> >>      KeepOriginalUID:Off
> >>      UIDPrefix: 1.2.826.0.1.3680043.2.1125.1
> >>      StudyInstanceUID:
> >>      SeriesInstanceUID:
> >>      FrameOfReferenceInstanceUID:
> >>      CompressionType:1
> >>      Patient Name:BX0002
> >>      Patient ID:A16
> >>      ...
> >>      Study Date:20000101
> >>      Modality:CT
> >>      Manufacturer:GE MEDICAL SYSTEMS
> >>      Institution Name:
> >>      Model:LightSpeed Ultra
> >>      Scan Options:HELICAL MODE
> >>  MetaDataDictionaryArrayMTime: 2989
> >>  MetaDataDictionaryArrayUpdate: 1
> >>
> >> Similar for the fixedImageReader print. The ITK version I am using is
> 4.1
> >> and compiled with MS Visual C++ 2010.
> >>
> >> I went through the user guide Ch. 8 but couldn't find any example
> related
> >> to
> >> the problem directly. It would be nice if anyone can also give one or
> two
> >> sample code on DICOM registration.
> >>
> >> Appreciate your help in this matter.
> >>
> >> Regards,
> >> Jeff
> >>
> >> --
> >> View this message in context:
> >>
> http://itk-insight-users.2283740.n2.nabble.com/DICOM-Registration-tp7519686.html
> >> Sent from the ITK Insight Users mailing list archive at Nabble.com.
> >> _____________________________________
> >> 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
> >>
> >
> > _____________________________________
> > 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
> >
>
> --
> View this message in context:
> http://itk-insight-users.2283740.n2.nabble.com/DICOM-Registration-tp7519686p7533165.html
> Sent from the ITK Insight Users mailing list archive at Nabble.com.
> _____________________________________
> 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/20120507/2fcf293b/attachment.htm>


More information about the Insight-users mailing list