Xiaoting Hong
Xiaoting Hong

Reputation: 21

How to make the Fourier Descriptor result to be Insensitive?

I am trying to distinguish shape for images in Matlab by using the Fourier Descriptor. What I want to do is : 1. Generate the Fourier Descriptors for each image; 2. Calculate the Euclidian Distance between these Fourier Descriptors to compare the shapes.

My problem is I cannot make the result of calculating the Fourier Descriptor to be insensitive for the geometric transformation (e.g. Rotation & Scaling).

The code I use now is the "Gonzales matlab version", the one in this link. I have tried to normalize the result by doing this:

% Normalization
DC = f(1);
f = f(2:11); % getting the first 20 & deleting the dc component
f = abs(f) ; % use magnitudes to be invariant to translation & rotation
f = f/DC; % devide the fourier coeffients by the DC-coefficient to be invariant to scale

But I don't think it worked as I expected. The result is different if I change the direction or the scale of a same image.

I have been trapped by this question for a couple of days. I will appreciate any suggestion, thank you all in advance!

Upvotes: 0

Views: 1072

Answers (1)

KansaiRobot
KansaiRobot

Reputation: 9912

I recommend you to read "Feauture Extraction and Image Processing for Computer Vision" by Nixon and Aguado. You will find there what you are looking for

Upvotes: 0

Related Questions