3.66667

3.7 | 24 ratings Rate this file 124 downloads (last 30 days) File Size: 135.39 KB File ID: #3000

Fourier-Mellin based Image Registration (with GUI)

by Adam Wilmer

 

07 Feb 2003 (Updated 12 Feb 2003)

No BSD License  

GUI-implementation of the Fourier-Mellin transform for simple image rotation, scale and translation.

Download Now | Watch this File

File Information
Description

This GUI implementation of the Fourier-Mellin transform allows registration of an image with respect to a base image. Translation, rotation and scale shift values are retrieved and used to form a registered reconstruction.

Required Products Image Processing Toolbox
MATLAB release MATLAB 6.0 (R12)
Zip File Content  
HTML Files Fourier-Mellin Transform GUI Help
Other Files
imlogpolar.m,
lena2.bmp,
lena_org.bmp,
parse_inputs.m,
readpgm.m,
transformImage.m,
window1d.m,
window2d.m,
zeropad.m,
hipass_filter.m,
crosspowerspectrum.m,
fft_resize_test.m,
fm_gui.m,
fm_guifun.m,
fm_parse_inputs.m,
fourier_mellin.m,
image_scale.m
Tags for This File  
Everyone's Tags
Tags I've Applied
Add New Tags Please login to tag files.
Comments and Ratings (31)
21 Jan 2004 Gang Pan

Doesn't work with my images

22 Jan 2004 Adam Wilmer

How about you tell me what happens and I try and sort it out for you. Use the CONTACT AUTHOR bit above. Cheers. Adam.

23 Feb 2004 neel bhattacharya

excellent help from adam

20 Apr 2004 Sic Volo

Good stuff. True, it does not work for non square images, but still it was very helpful

15 May 2004 Kishore Mogatadakala

Eccellet work!

02 Sep 2004 a c

Excellent ,Thanks

02 Sep 2004 pavan kumar

Its a very useful article

07 Nov 2004 Romeil Sandhu

Hey, I couldn't run this program because it gave the following error when trying to register the images:

Change directory to the location of fm_gui.m...
...or change the value of FM_PATH in fm_gui.m.
Cannot rotate/scale a non-existent image
PROBLEM ALERT: phasecorrelation contains a lot of NaNs (check FFTs exist as they cannot cope with certain inputs for some reason)
??? Index exceeds matrix dimensions.

Error in ==> C:\MATLAB6p5\work\fm_gui_v2\fourier_mellin.m
On line 56 ==> sorted_scale = scale_neighbourhood(2);

Error in ==> C:\MATLAB6p5\work\fm_gui_v2\fm_guifun.m
On line 337 ==> [data.registered,data.input1registered,data.input2registered,reg_output,data.pc_rs,data.pc_trans] = fourier_mellin(data);

??? Error while evaluating uicontrol Callback.

Can someone help me please!

01 Dec 2004 pau soler

very good

12 Jun 2005 Tomer Ish shalom

Excelent work

However, The resampling algorithms can be improved and instead of using matlab standard resampling routines.
The routines suggested by yeroslavsky in "digital holography" can be used.

07 Jul 2005 vivek reddy  
22 Sep 2005 Robin Tucker

Any hints on how to convert this to work with Matlab 7?

09 Nov 2005 Ji-Young Lim

The transformImage.m has a few small bugs that do not let the following FFT be successful. GUI is wonderful!

10 Feb 2006 klesk chonkin

Excellent job!

26 Jul 2006 Moti Freiman

Is there any way to use this code for generating fourier mellin rotation, translation, scale invariant descriptors?

28 Aug 2006 Andrei Luk  
05 Dec 2006 shirzad Kalhori

Hello !
Very nice page.
Best regards

29 Mar 2007 li haichao  
20 Apr 2007 bereket haile

helo I need matlab codes for log-polar transform

27 Apr 2007 Filmon Abraham  
24 Jul 2007 rajavel pandeeswaran

Really good

22 Aug 2007 Riber Kaban  
25 Sep 2007 Lin Zhang

I have found out that the Fourier-Mellin transform (FMT) can only do image registration for two images with the same size and the same background. The FMT cannot do the template matching where the pattern template only contains an object in the input image and it is much smaller than the input image, but the input image contains many other things in addition to the object contained in the template.
In this case, I have found out that the FMT can not do the template matching to locate the pattern in the input image.

I would like to know if anyone else has the similar problem and how to solve this problem.

Thanks.

23 Oct 2007 wan mariana  
21 Nov 2007 Muharram Mansoorizadeh

Dear Zhang, this is not surprising , because the FM method is built upon a set of transforms that apply on image structures(including background and objects).
To do template matching, in some cases, you can apply preprocessing to eliminate or soften background. Example of such cases are removing constant backgrounds, filtering out certain colors(e.g. skin color), morphological filtering and segmentation.

28 Dec 2007 Antai Guo

I have tested the FMT Gui, while it seems that the matlab application doesn't work well, and when processing 'lena.bmp', it dumpped to dummy.

13 Mar 2008 Rudy Slingerland

This program doesn't work, even with the test image provided in the zip file. Upon attempting to lad the first image it returns an error:
??? Undefined function or method 'isind' for input arguments of type 'uint8'.

Error in ==> fm_guifun at 77
            if isind(M1) & ~isempty(ma)

??? Error using ==> fm_guifun loadA; fm_guifun RotateScaleCropInput2; fm_guifun input1Select; fm_guifun input2Select;
Undefined function or method 'isind' for input arguments of type 'uint8'.

??? Error while evaluating uicontrol Callback

For debugging purposes, please note that I am using Matlab v. 7.4 (R2007a)

Thanks,

R Slingerland

17 Mar 2008 Christian Recknagel

I have found an error in the subfunction "transformImage.m". In line 46,47,48,61 you want to set specific values to black. The value for black is zero and not NAN!!!! If you set the values to NAN the fft2 function used in "crosspowerspectrum.m" does not work.

20 Mar 2008 Sohan Ranjan

The zip file is missing. Can anyone share?

25 Sep 2008 Greg Baxter

While the GUI appears to function as designed, there were numerous errors in the underlying code.

NOTE: I'm using R2008A

??? Error using ==> get
There is no 'zdata' property in the 'image' class.

Error in ==> objbounds at 65
        zd = get(h(i), 'zdata');

Error in ==> axis>LocSetTight at 266
limits = objbounds(findall(ax));

Error in ==> axis>LocSetImage at 393
LocSetTight(ax);

Error in ==> axis at 139
                LocSetImage(ax(j),pbarlimit);

Error in ==> fm_guifun at 448
    axis image; % fit axis box tightly around image

??? Error while evaluating uicontrol Callback

Warning: isind is obsolete and may be removed in the future.
See product release notes for more information.
> In isind at 32
  In fm_guifun at 126
PROBLEM ALERT: phasecorrelation contains a lot of NaNs (check FFTs exist as they cannot cope with certain inputs for some reason)
??? Attempted to access scale_neighbourhood(2); index out of bounds because
numel(scale_neighbourhood)=0.

Error in ==> fourier_mellin at 56
    sorted_scale = scale_neighbourhood(2);

Error in ==> fm_guifun at 337
        [data.registered,data.input1registered,data.input2registered,reg_output,data.pc_rs,data.pc_trans]
        = fourier_mellin(data);

??? Error while evaluating uicontrol Callback

07 Feb 2009 JIAO …

I found that it can work for the common images, but it can not work for the astronomic image.And anybody else can make a file without GUI?

Please login to add a comment or rating.
Updates
12 Feb 2003

A vital word was missing at the end of the Submission name.

Tag Activity for this File
Tag Applied By Date/Time
geometric transformation Adam Wilmer 22 Oct 2008 06:56:28
image registration Adam Wilmer 22 Oct 2008 06:56:28
fouriermellin Adam Wilmer 22 Oct 2008 06:56:28
registration Adam Wilmer 22 Oct 2008 06:56:28
translation registratio Adam Wilmer 22 Oct 2008 06:56:28
scale Adam Wilmer 22 Oct 2008 06:56:28
rotation Adam Wilmer 22 Oct 2008 06:56:28
image registration JIAO … 07 Feb 2009 22:02:26
 

MATLAB Central Terms of Use

NOTICE: Any content you submit to MATLAB Central, including personal information, is not subject to the protections which may be afforded information collected under other sections of The MathWorks, Inc. Web site. You are entirely responsible for all content that you upload, post, e-mail, transmit or otherwise make available via MATLAB Central. The MathWorks does not control the content posted by visitors to MATLAB Central and, does not guarantee the accuracy, integrity, or quality of such content. Under no circumstances will The MathWorks be liable in any way for any content not authored by The MathWorks, or any loss or damage of any kind incurred as a result of the use of any content posted, e-mailed, transmitted or otherwise made available via MATLAB Central. Read the complete Terms prior to use.

Contact us at files@mathworks.com