Python implementation of "Elliptic Fourier Features of a Closed Contour"
An Python/NumPy implementation of a method for approximating a contour with a Fourier series, as described in .
$ pip install pyefd
from pyefd import elliptic_fourier_descriptors coeffs = elliptic_fourier_descriptors(contour, order=10)
The coefficients returned are the a_n, b_n, c_n and d_n of the following Fourier series representation of the shape.
The coefficients returned are by default normalized so that they are rotation and size-invariant. This can be overridden by calling:
from pyefd import elliptic_fourier_descriptors coeffs = elliptic_fourier_descriptors(contour, order=10, normalize=False)
Normalization can also be done afterwards:
from pyefd import normalize_efd coeffs = normalize_efd(coeffs)
To use these as features, one can write a small wrapper function:
def efd_feature(contour): coeffs = elliptic_fourier_descriptors(contour, order=10, normalize=True) return coeffs.flatten()[3:]
If the coefficients are normalized, then coeffs[0, 0] = 1.0, coeffs[0, 1] = 0.0 and coeffs[0, 2] = 0.0, so they can be disregarded when using the elliptic Fourier descriptors as features.
See  for more technical details.
Run tests with:
$ python setup.py test
or with Pytest:
$ py.test tests.py
The tests includes a single image from the MNIST dataset of handwritten digits () as a contour to use for testing.
|||(1, 2) Frank P Kuhl, Charles R Giardina, Elliptic Fourier features of a closed contour, Computer Graphics and Image Processing, Volume 18, Issue 3, 1982, Pages 236-258, ISSN 0146-664X, http://dx.doi.org/10.1016/0146-664X(82)90034-X.|
|||LeCun et al. (1999): The MNIST Dataset Of Handwritten Digits|
- Deemed stable enough for version 1.0 release
- Created documentation.
- Testing with pytest instead of nosetests.
- Added Coveralls use.
- Fixed MANIFEST
- Added LICENSE file that was missing.
- Initial release
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size & hash SHA256 hash help||File type||Python version||Upload date|
|pyefd-1.0-py2.py3-none-any.whl (7.5 kB) Copy SHA256 hash SHA256||Wheel||2.7||Apr 19, 2016|
|pyefd-1.0.tar.gz (7.6 kB) Copy SHA256 hash SHA256||Source||None||Apr 19, 2016|