[Insight-users] 2D/3D Intensity based registration

Philipp Steininger phil.steininger at gmail.com
Fri Oct 17 09:36:05 EDT 2008


hi pascal,

certainly it's possible to incorporate the DRR-generation code inside the
metric-component, BUT:
ITK's registration framework provides a quite elegant implementation of
2D/3D-registration (compatible to the 'ordinary' itkImageRegistrationMethod
and its multi-resolution equivalent):
- fixed image is the 2D-image, e.g. X-ray (but treated as a 1-slice
3D-volume)
- moving image (property of the registration and metric objects) is the
3D-volume, e.g. a CT
- additionally the necessary components metric, transformation and
interpolator are connected
- ... till here it looks like a 3D/3D registration problem
- the 'elegant' thing: the interpolator (itkRayCastInterpolateImageFunction)
is the DRR-generator (!) projecting and summing the 3D volume-intensities
onto the image plane (1-slice 3D-volume) (-> in reality this is the moving
image which the metric is evaluating!)

I've not thought about more than one fixed images for 2D/3D-registration
because in my concrete problem I do not have more than one X-rays per
patient. but this could also be integrated into the traditional
ITK-registration framework - e.g. with a custom metric component and an
'n-way'-interpolator component. ... maybe I should also think about that!

if you browse nabble-ITK-forum, you will see that there are lots of
confusions about the DRR-geometry and transformations (especially
rotations). as far as I know the itkRayCastInterpolateImageFunction is not
capable of affine volume transformations in general (do not know if you need
that; certainly you can overcome this by providing a custom transformation
which modifies the 3D input volume, but it's kind of stressful).

time? I did not measure time exactly using
itkRayCastInterpolateImageFunction, but since it is not multi-threaded it's
not too fast. most people who want to do fast (real-time) (RIGID)
2D/3D-registration use some kind of pre-calculations ('libraries') and then
mostly derive DRR-'estimations' (according to the current transform) from
them. but unfortunately this is not really possible for model-based
2D/3D-registration ...

regards
phil



On Fri, Oct 17, 2008 at 2:50 PM, Pascal <mastersofwar at yahoo.com> wrote:

> Hello Phil,
>
> My intentions were to incorporate the DRR generation code inside the METRIC
> .txx file for the 2D/2D registration. Seeing how I must recreate DRR images
> after each step of the optimization (using the new transformation values), I
> thought it would be the easiest way to appraoch it.
>
> Unless, I am blind and haven't seen any similar strategies in the forums or
> ITK applications, do you feel this is a valid proposal by me? I am no expert
> in the DRR generation, however, in terms of computational time, how long
> does it take to generate multi DRR's in a 2D/3D registration framework?
>
>
>
>
>
> Pascal Fallavollita, Ph.D
> Queens University
> Institute of Biomedical Engineering
>
>
> --- On *Fri, 10/17/08, philstone <phil.steininger at gmail.com>* wrote:
>
> From: philstone <phil.steininger at gmail.com>
> Subject: Re: [Insight-users] 2D/3D Intensity based registration
> To: insight-users at itk.org
> Date: Friday, October 17, 2008, 7:17 AM
>
>
> hi pafal,
> we are currently working on an ITK-based multi-resolution 2D/3D registration
> framework which is - hopefully - a bit easier to configure (the X-ray
> geometry) than the InsightApplication-example. it will support (in contrast
> to ITK's RayCaster) a) multi-threaded DRR-generation, b) ray-casting and
> wobbled splatting, c) intensity transfer functions and d) affine
> transformations of the input volume. depending on our work-progress and time
> we can invest on this little project, we are going to submit it to the
> insight-journal next month (I think ...).
> regards
> phil
>
>
>
> pafal wrote:
> >
> > I have searched the forums for IntensityBased2D3DRegistration and as of
> > yet I have not come with a concrete response to my question.
> >
> > By sifting through the IntensityBased2D3DRegistration.cxx code in great
> > detail, I gather the pipeline is as follows:
> >
> > a) read 3D volume
> > b) raycast the 3D volume into a DRR image
> > c) similarity metric between DRR image and user input 2D image
> > d) optimizwe transforms.
> >
> >
> > Questions:
> >
> > 1- if I have three 2D images, can I use these images to estimate the pose
> > (6 d.o.f) of the volume, or is this .cxx file only valid for a single 2D
> > image to 3D volume registration?
> >
> > 2- Is it possible initializing the transforms to identity, just like in
> > the 3D/3D registration examples and hope that the algorithm will optimize
> > the transforms close to their true values?
> >
> > 3- I'm confused with the Readme.txt file. The pipeline is to first
> execute
> > GenerateProjection by projecting brainweb165a10f17.mha and saving into
> > projection.mhd.
> >
> > Then we take  projection.mhd  and compare it with our own 2D image by
> > calling IntensityBased2D3DRegistration??
> >
> >
> > 4- Are the command lines in Readme.txt copy pasted into batch files?
> >
> >
> >
> > any insight on this would be monumental for me.
> >
> > thank you
> >
> > regards
> >
> > P.
> >
>
> --
> View this message in context:http://www.nabble.com/2D-3D-Intensity-based-registration-tp20015713p20031412.html
> Sent from the ITK - Users mailing list archive at Nabble.com.
>
> _______________________________________________
> Insight-users mailing listInsight-users at itk.orghttp://www.itk.org/mailman/listinfo/insight-users
>
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam? Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20081017/f109b980/attachment-0001.htm>


More information about the Insight-users mailing list