[Insight-users] 2d - 3d registration

Luis Ibanez luis.ibanez at kitware.com
Tue, 06 Apr 2004 18:19:33 -0400


Hi Neilson,

At this point there is not a native SliceToVolume metric,
but you probably can easily convert the code of the current
MeanSquareImageToImageMetric in order to work between
a 2D and a 3D image.

I you actually have a set of 2D image I'll suggest you
to create a metric that will take N fixed image inputs
each one with its own local transform that will indicate
the relative position of the ultrasound probe.

 From the point of view of the metric you simply has to
visit all pixels of the fixed image and map them onto
the moving image space.  The fact that your fixed image
is actually composed of several Ultrasound slices,
shouldn't be a problem. You simply change the iterator
loop in order to visit all the pixels of all the US
slices.

Please let us know if you need help in doing such
modifications. We will be very interested in putting
such modified class back into the toolkit, since
US to CT/MRI is such a common need in image guided
surgery and terapy follow-up.




   Regards,




      Luis



---------------------------
N.E Mackenzie-Mackay wrote:

> Hey luis,
> 
>     Thanks for the help.  Is there any metric or another way that I 
> could register a 2d slice without slice inserting it into a pesudo 3d 
> image.
> 
>     Also on a follow up.  Would your suggestion also work with multiple 
> 2d images?  e.g.  I have multiple ultrasound images that I want to 
> register to a CT volume.  If I inserted say 2, 3 or 20 ultrasound images 
> into a 3d image (all calibrated in the same space) could I use your 
> technique you suggested to register them to a 3d ct volume... using the 
> correct metric of-course.
> 
> Neilson
> 
> 
> On Apr 6, 2004, at 5:48 PM, Luis Ibanez wrote:
> 
>>
>> Hi,
>>
>> The MeanSquares Metric is assuming that both images will
>> have the same dimension. You could set your slice as the
>> fixed image and set it as a 3D image with a single slice.
>>
>> In that circumstances, the pixels of the fixed image are
>> visited and mapped throught the transform into the moving
>> image (that will be your real 3D image).
>>
>>
>> Please instantiate the metric for two images of 3D, and
>> read the slice into a 3D image, it will have dimensions
>> ( N X M X 1 ).
>>
>>
>>
>>   Regards,
>>
>>
>>     Luis
>>
>>
>>
>> --------------------------
>> N.E Mackenzie-Mackay wrote:
>>
>>> This might seem like a simple question.
>>> To register a 2d slice to a 3d volume ( set of slices ) say using the 
>>> MeanSquaresImageToImageMeric. Is it just a matter of specifying the 
>>> dimensions of the images.
>>>     eg.  typedef itk::Image<float, 3> FixedImageType    //3d slices
>>>         typedef itk::Image<float, 2> MovingImageType        //2d image
>>>         .....
>>>         typedef itk::MeanSquaresImageToImageMeric<FixedImageType, 
>>> MovingImageType >   MetricType
>>> Would this be correct or is there a different method I have 
>>> completely overlooked?
>>> _______________________________________________
>>> Insight-users mailing list
>>> Insight-users at itk.org
>>> http://www.itk.org/mailman/listinfo/insight-users
>>
>>
>>
>>
> 
>