comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Image registration using Powell optimization
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
Image registration using Powell optimization [message #25081] Fri, 18 May 2001 13:56 Go to next message
mwirth is currently offline  mwirth
Messages: 3
Registered: April 2001
Junior Member
Hi,

Does anybody have an example of how Powell's optimization procedure can be used
in the
context of image registration to find the minimum when trying to calculate the
optimum match
using a similarity measure such as mutual information?

Help would be greatly appreciated,

many thanks,

Michael

mwirth@snowhite.cis.uoguelph.ca
Re: Image registration using Powell optimization [message #25167 is a reply to message #25081] Sun, 20 May 2001 19:41 Go to previous messageGo to next message
nrh is currently offline  nrh
Messages: 19
Registered: September 2000
Junior Member
These papers may be of use to you...

Frederik Maes, Dirk Vandermeulen and Paul Suetens
Comparative evaluation of multiresolution optimization strategies for multimodality image registration by maximization of mutual information Medical image analysis, vol. 3, no. 4, pp. 373-386, December 1999

Capek,K.: Optimisation Strategies Applied to Global Similarity Based Image Registration Methods
[Conference Paper] 7th International Conference in Central
Europe on Computer Graphics, Visualization and Interactive Digital Media'99. in co-operation with EUROGRAPHICS and IFIP WG 5.10. WSCG'99. Conference
Proceedings. Univ. West Bohemia. Part vol.2, 1999, pp.369-74 vol.2. Plzen, Czech Republic.

Holmes DR III, Camp JJ, Robb RA. Evaluation of search strategies and cost functions in
optimizing voxel-based image registration. [Conference Paper] SPIE-Int. Soc. Opt. Eng.
Proceedings of Spie - the International Society for Optical Engineering, vol.3031, 1997,
pp.554-62. USA.

There are a few image registration packages that use Powell's Method. One that comes
to mind is the Computerized Brain Atlas-see Journal of Computer Assisted Tomography
21(1):136-144 (1997).

None that I know of that use IDL.

mwirth@snowhite.cis.uoguelph.ca wrote:

> Hi,
>
> Does anybody have an example of how Powell's optimization procedure can be used
> in the
> context of image registration to find the minimum when trying to calculate the
> optimum match
> using a similarity measure such as mutual information?
>
> Help would be greatly appreciated,
>
> many thanks,
>
> Michael
>
> mwirth@snowhite.cis.uoguelph.ca

--
Defunctus adhuc loquitur

Rochelle Hatton
Department of Nuclear Medicine and Ultrasound
Westmead Hospital
Re: Image registration [message #31194 is a reply to message #25081] Wed, 19 June 2002 13:33 Go to previous message
Eric Vella is currently offline  Eric Vella
Messages: 8
Registered: April 1999
Junior Member
Just a few additions to the previous good answer from Bill ...

If the X and Y shifts are fairly uncorrelated, and the images have enough
distinctive features (like sharp horizontal and vertical brightness
transitions), you may be able to determine each shift independently. It
might also be possible to proceed iteratively -- determine best rotation,
then best X shift, then best Y shift, then repeat the whole sequence until
it converges. If the convergence is stable, this will be quicker than
mapping out the whole 3D space. If your images are small enough that time
is not a problem, then of course the 3D approach is safer and better.

At each step, you might be able to work with a 1D image projection instead
of the full 2D image. For example, you might be able to determine the X
shift from a projection of the image onto the X axis. For rotation, you
could do something similar, make a 1D vector where each element is a sum of
pixels at a fixed angle, summed over radius.

The C_CORRELATE function lets you evaluate a set of shifts with a single
function call.

"William Thompson" <thompson@orpheus.nascom.nasa.gov> wrote in message
news:aeq5eo$rno$1@skates.gsfc.nasa.gov...
> carsten@rad.uni-kiel.de (Carsten Liess) writes:
>
>> Dear all,
>
>> I am fairly new to IDL, so bear with me please.
>> I have two images of the same object, only with different intensities.
>> I want to create an image that displays the ratio of the two input
>> images. I programmed that and it works.
>> Problem is that the object I am imaging might have moved by up to 10
>> pixels (at a 256*256 matrix) in between, so I need to match the
>> position of these two images before I calculate their ratio. The
>> movement might include translation as well as rotation.
>> Is there a routine in IDL that does such an operation? Alternatively,
>> does any among you have any clever suggestion how to go about this?
>> Many thanks!
>
> Carsten:
>
> The way I've handled this problem in the past is to make a cross
correlation
> matrix of one image against the other, and looking for where the
correlation
> coefficient is highest. Throwing in rotation as well makes it more
> complicated, but in essence the problem is the same. The basic difference
is
> that one is working with three dimensions instead of two.
>
> In the classic problem with translation only, one shifts one image
relative to
> the other by one pixel at a time, and then calculates the cross
correlation
> coefficient between them (e.g. with CORRELATE). For example, if you think
that
> the two images could be shifted relative to each other by a maximum of 10
> pixels, you would build up a matrix of size (21,21) representing shifts
of -10
> to +10 pixels in each direction. If you display this matrix as an image,
you
> should be able to see a clear peak representing the best match between the
two
> images. On my data, I've been able to fit the area around the peak to get
down
> to subpixel resolution--your mileage may vary.
>
> If you add rotation into the mix, I would guess that the best place to
proceed
> would be to build up an array of (N,N,M) of cross correlation
coefficients,
> where N is the number of pixel shifts (21 in the above example), and M is
the
> number of angular rotations you wish to explore. For each angle position
> (K=0,M-1), I would rotate one of the images (e.g. with ROT) and then
calculate
> the NxN cross correlation matrix for that rotation. You would then have a
> three dimensional volume to examine for the peak correlation.
>
> I hope this helps,
>
> Bill Thompson
Re: Image registration [message #31212 is a reply to message #25081] Wed, 19 June 2002 07:45 Go to previous message
thompson is currently offline  thompson
Messages: 584
Registered: August 1991
Senior Member
carsten@rad.uni-kiel.de (Carsten Liess) writes:

> Dear all,

> I am fairly new to IDL, so bear with me please.
> I have two images of the same object, only with different intensities.
> I want to create an image that displays the ratio of the two input
> images. I programmed that and it works.
> Problem is that the object I am imaging might have moved by up to 10
> pixels (at a 256*256 matrix) in between, so I need to match the
> position of these two images before I calculate their ratio. The
> movement might include translation as well as rotation.
> Is there a routine in IDL that does such an operation? Alternatively,
> does any among you have any clever suggestion how to go about this?
> Many thanks!

Carsten:

The way I've handled this problem in the past is to make a cross correlation
matrix of one image against the other, and looking for where the correlation
coefficient is highest. Throwing in rotation as well makes it more
complicated, but in essence the problem is the same. The basic difference is
that one is working with three dimensions instead of two.

In the classic problem with translation only, one shifts one image relative to
the other by one pixel at a time, and then calculates the cross correlation
coefficient between them (e.g. with CORRELATE). For example, if you think that
the two images could be shifted relative to each other by a maximum of 10
pixels, you would build up a matrix of size (21,21) representing shifts of -10
to +10 pixels in each direction. If you display this matrix as an image, you
should be able to see a clear peak representing the best match between the two
images. On my data, I've been able to fit the area around the peak to get down
to subpixel resolution--your mileage may vary.

If you add rotation into the mix, I would guess that the best place to proceed
would be to build up an array of (N,N,M) of cross correlation coefficients,
where N is the number of pixel shifts (21 in the above example), and M is the
number of angular rotations you wish to explore. For each angle position
(K=0,M-1), I would rotate one of the images (e.g. with ROT) and then calculate
the NxN cross correlation matrix for that rotation. You would then have a
three dimensional volume to examine for the peak correlation.

I hope this helps,

Bill Thompson
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Dilating a point
Next Topic: Re: Lost my 'info' structure

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Sat Oct 11 09:08:47 PDT 2025

Total time taken to generate the page: 0.56221 seconds