[Insight-users] Rigid registration of IBSR images

Andriy Fedorov fedorov at bwh.harvard.edu
Thu Apr 5 11:23:26 EDT 2007


Hello,

I am using ImageRegistration8 example from the
Insight/Examples/Registration. I only modified it to save the final
transform by adding these lines:

  itk::TransformFileWriter::Pointer trWriter = itk::TransformFileWriter::New();
  trWriter->SetFileName("transform.par");
  trWriter->SetInput(finalTransform);
  trWriter->Update();

The problem I am having is that if I apply this saved transform to the
moving image, the resulting image is different from the registered
image, produced by ImageRegistration8. Looks like translation is
incorrect, possibly incorrect translation vector direction. I did
check the transform as it is written and read back with
Print(std::cout), and it appears to be exactly the same.

I suspect something is weird or wrong with the data I am using, or
with the code handling this particular kind of data, because this same
code and resampler work fine with the BrainWeb test images (referenced
in ITK guide).

Can anybody help me what could be the problem?

I am using IBSR "New New 18 T1 MRI" dataset, Analyze format, it can be
downloaded here http://www.cma.mgh.harvard.edu/ibsr/data.html.
Specifically, I am using image IBSR_09_ana_padded_masked.hdr as the
reference, and IBSR_01_ana_padded_masked.hdr as the floating image.

I attach the resampler code that I am using.

I tried different things to figure this out, including using
OrientedImage instead of just Image class, converting data from
Analyze to Metaheader with RPI orientation passing it through
OrientImage, but none seemed to work...

I would really appreciate any help or suggestion.

Andriy Fedorov
-------------- next part --------------
A non-text attachment was scrubbed...
Name: resampler1.cxx
Type: text/x-c++src
Size: 3154 bytes
Desc: not available
Url : http://public.kitware.com/pipermail/insight-users/attachments/20070405/9947b9d9/resampler1.cxx


More information about the Insight-users mailing list