[ITK] [ITK-users] FW: intensity based 2d 3d registration

D'Isidoro Fabio fisidoro at ethz.ch
Mon Nov 14 15:48:55 EST 2016


Hallo,

I forward again my previous email hoping for a reply.

Within the context of intensity based 2D-3D registration, can RayCastInterpolateImageFunction be used with ImageRegistrationMethodv4, as the other interpolators listed in the manual? RayCastInterpolateImageFunction is not in the manual as the other interpolators: does this mean that has not been implemented for use with ImageRegistrationMethodv4 (given that my code does not seem to work)?

The problem why my code does not work is apparently not a memory issue (I tried with a very very small 3D volume and the registration still does not work).

Thank you!

From: D'Isidoro Fabio
Sent: Freitag, 11. November 2016 13:37
To: insight-users at itk.org
Subject: intensity based 2d 3d registration

Hallo,

I work on itk V4.10 (latest version) with Python wrapping. I am trying to implement a basic intensity-based 2d3d registration, with a 3D translation as transform and without multi-level or multi-stage registration.
I could successfully reproduce with Python wrapping the DRR generation code (DigitallyReconstructedRadiograph1.cxx) and the 3D-3D registration examples on the ITK manual (ImageRegistration8.cxx).
I have combined now both for my 2D-3D registration, based on the template I found on [1]. This template is however based on registration method v3 and is more complex than the basic version I am trying to implement (because it involves the Euler transform and multi-level approach).

My basic version (in attachment) does not work, sometimes showing a "Failed to allocate memory for image" and sometimes Python just crashes (I could not figure out the reason for this difference). I connected all components (optimizer, metric, fixed and moving interpolator) the way I believe it makes sense, but I am not sure whether ImageRegistrationMethodv4 supports the RayCastInterpolateImageFunction and how it wants it to be connected and initialized. The code fails at the registration.Update() command after a few seconds of running.

My 3D volume is a 54 MB CT scan (360X450X160), I have reduced it from the original one to try to avoid memory allocation problems.

Is my code wrong? Also, how can I debug it if I can't put breakpoints "inside registration.Update()"?

Looking forward to your help.

Thank you,
Fabio.

[1] https://github.com/InsightSoftwareConsortium/ITKApps/blob/master/IntensityBased2D3DRegistration/IntensityBased2D3DRegistration.cxx



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/community/attachments/20161114/1bce8c1c/attachment-0001.html>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: IntBased2d3d.txt
URL: <http://public.kitware.com/pipermail/community/attachments/20161114/1bce8c1c/attachment-0001.txt>
-------------- next part --------------
_____________________________________
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 Community mailing list