title: How to make the Fourier Descriptor result to be Insensitive?
body: <p>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.</p>
  
  <p>My problem is I cannot make the result of calculating the Fourier Descriptor to be insensitive for the geometric transformation (e.g. Rotation &amp; Scaling).</p>
  
  <p>The code I use now is the "Gonzales matlab version", the one in this <a href="http://www.codeforge.com/read/84870/frdescp.m__html" rel="nofollow">link</a>. I have tried to normalize the result by doing this:</p>
  
  <pre><code>% Normalization
  DC = f(1);
  f = f(2:11); % getting the first 20 &amp; deleting the dc component
  f = abs(f) ; % use magnitudes to be invariant to translation &amp; rotation
  f = f/DC; % devide the fourier coeffients by the DC-coefficient to be invariant to scale
  </code></pre>
  
  <p>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.</p>
  
  <p>I have been trapped by this question for a couple of days. I will appreciate any suggestion, thank you all in advance!</p>