Code covered by the BSD License  

Highlights from
Elliptic fourier for shape analysis

5.0

5.0 | 1 rating Rate this file 26 Downloads (last 30 days) File Size: 5.96 KB File ID: #32800
image thumbnail

Elliptic fourier for shape analysis

by

 

06 Sep 2011 (Updated )

Implementation of elliptic fourier for shape analysis.

| Watch this File

File Information
Description

1) plot_chain_code(ai, color, line_width)

This function will plot the given chain code. The chain code (ai) should be in
column vector.
Example:
>> ai = [5 4 1 2 3 4 3 0 0 1 0 1 0 0 0 7 7 1 1 0 7 5 4 5 4 5 0 6 5 4 1 3 4 4 4 4 6];
>> plot_chain_code(ai)

2) plot_fourier_approx(ai, n, m, normalized, color, line_width)

This function will plot the Fourier approximation, given a chain code (ai),
number of harmonic elements (n), and number of points for reconstruction (m).
Normalization can be applied by setting "normalized = 1".

3) output = calc_traversal_dist(ai, n, m, normalized)

This function will generate position coordinates of chain code (ai). Number of
harmonic elements (n), and number of points for reconstruction (m) must be
specified.
The output is a matrix of [x1, y1; x2, y2; ...; xm, ym].

3) output = fourier_approx(ai, n, m, normalized)

This function will generate position coordinates of Fourier approximation of
chain code (ai). Number of harmonic elements (n), and number of points for
reconstruction (m) must be specified.
The output is a matrix of [x1, y1; x2, y2; ...; xm, ym].

4) output = calc_harmonic_coefficients(ai, n)

This function will calculate the n-th set of four harmonic coefficients.
The output is [an bn cn dn]

5) [A0, C0] = calc_dc_components(ai)

This function will calculate the bias coefficients A0 and C0.

6) output = calc_traversal_dist(ai)

Traversal distance is defined as accumulated distance travelled by every
component of the chain code assuming [0 0] is the starting position.
Example:
>> x = calc_traversal_dist([1 2 3])
x =
    1 1
    1 2
    0 3

7) output = calc_traversal_time(ai)

Traversal time is defined as accumulated time consumed by every
component of the chain code.
Example:
>> x = calc_traversal_time([1 2 3])
x =

   1.4142
   2.4142
   3.8284

Acknowledgements

Elliptical Fourier Shape Descriptors inspired this file.

MATLAB release MATLAB 7.8 (R2009a)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (2)
19 Nov 2012 Auralius Manurung

Hi João Neves,

Sorry for the late reply and thank you for your valuable inputs.

You are definitely right. I will fix this in the next update.

Cheers,
Auralius

13 Nov 2012 João Neves

Fantastic work, however I would like to know if there is an error in the calc_dc_components function.
Is this line correct?

sum_c0 = sum_c0 + delta_x / (2 * delta_t) * (t(p))^2 + delta * t(p);

or it should be

sum_c0 = sum_c0 + delta_y / (2 * delta_t) * (t(p))^2 + delta * t(p);

Thanks again for this great work

Updates
08 Sep 2011

Added function descriptions for better understanding

27 Nov 2012

Corrected mistake on the equation based on João Neves' suggestion.

Contact us