File Exchange

Zernike decomposition

version 1.0.0.0 (845 Bytes) by Alex Chtchetinine

Alex Chtchetinine (view profile)

Decomposition of a 2-D function by set of Zernike functions

Updated 10 Dec 2007

This code was written to deal with "Zernike polynomials" code graciously donated by Paul Fricker via file exchange.
Here you will find a practical example of a function decomposition by
Zernike basis.
The function is F below, feel free to modify
Unlike Paul's example found in 'zernfun2.m' here the domain is the true unit circle, without NaN's filling it up to the unit square.
You will have to download Paul's functions to run this code.

marwa melki

think you

Alexander

Alexander (view profile)

Thank you for sharing, Alex. Good means for quick and robust illustration of Zernike decomposition.

Francesco

Francesco (view profile)

I'm using this code to decompose a wave aberration function. I'm experiencing a problem with the decomposition. Why if I try to expand a function like
F = A*r^4
where A is constant, I get 2 non-negative coefficients: not only the coefficient corresponding to spherical aberrations but also that one who correspond to Field Curvature ?!?!
thanks

Eric

Eric (view profile)

This is an extraordinarily slow way of fitting Zernike coefficients. See "Wavefront fitting with discrete orthogonal polynomials in a unit radius circle" by Malacara, et al, in Optical Engineering, Vol 29, No 6, pages 672-675 for a much more efficient, least-squares approach. You can speed the decomposition up significantly by using linear algebra functions rather than interp2() and dblquad().

Alex Kararg

Alex Kararg (view profile)

Any idea if there is a Matlab code for decomposing a 3D shape to Zernike descriptors? Thanks!

Shalin Mehta

Shalin Mehta (view profile)

This is a good code for illustrating the idea of Zernike decomposition

Xame Earnest

This helps, thanks!

aaaa bbbb

Very well done, thanks!

Greg Noder

Thank you, runs smoothly.

MATLAB Release Compatibility
Created with R2007b
Compatible with any release
Platform Compatibility
Windows macOS Linux