The normalization of the Fourier descriptors is performed as follows:
Set the DC component of the descriptors to $a(0)=0$.
Divide all the Fourier descriptors with the magnitude of the second one. i.e. :
$a(1)=r_1e^{j\phi_1}$
$a(k)=\frac{a(k)}{\lVert a(1) \rVert}$
- Now, only the position of the starting point remains to be normalized. This is done by subtracting the phase of the second Fourier descriptor $\phi_1$ frin the phase of all Fourier descriptors and weighting by $k$; that is:
$a(k)=a(k)e^{-j \phi_1 k}$
Note that I did not describe rotational invariance here. In simple terms it is achieved by taking the magnitude of each Fourier coefficient.
Also, you have to chain code your contours and represent them in complex space to perform the Fourier analysistransformation (the ordering matters if you don't perform step (2) ).
Fourier descriptors are not necessarily robust. They are good if you have some control of environment (such as lighting and appearance etc. ), but I don't expect them to work on cases such as a missing handle.