How to set minimum step size in optimizer for image registration?

3 views (last 30 days)
I am solving a registration type problem where I know my images can be apart by large parameter values (perhaps, up to 20 pixel shift, 0.5 scaling factor and 30 degrees). When I use an optimizer, it takes sub-pixel steps and ends up in a minimum that is (or rounds off to) my original guess. Is there a way to set the step size to e.g. 1 pixel, 1 degree etc? I am trying to use fminsearch but do have the optimization toolbox.
Also, is it possible to pass images to the optimizing function without doing file reads/writes?
Thank you, Bogdan

Answers (1)

Image Analyst
Image Analyst on 7 May 2014
Why not just use imregister() or imregtform() to do the registration? They're in the Image Processing Toolbox - do you have that?
Image Analyst
Image Analyst on 7 May 2014
imregtform has a choice of optimizers. It may be equivalent to the optimizers you want to use. imregtform is meant for aligning images that may be way out of alignment or not be so close in appearance. Here's the description:
tform = imregtform(moving,fixed,transformType,optimizer,metric) estimates the geometric transformation that aligns the moving image moving with the fixed image fixed. transformType is a string that defines the type of transformation to estimate. optimizer is an object that describes the method for optimizing the metric. metric is an object that defines the quantitative measure of similarity between the images to optimize. The output tform is a geometric transformation object that maps moving to fixed.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by