Feature extraction is an important step consists in transforming arbitrary data, such as text or images, into statistical features usable for machine learning. Zernike moments are one of the category statistical features.

In literature, Zernike polynomials are used to solve many optical problems and defined on the unit circle. The Zernike moments are defined using the following sets of odd and even polynomials as:

\textrm{Odd Zernike Polymomial :} \quad \mathcal{Z}_{n}^m(\rho, \varphi):\mathcal{R}_n^m(\rho)\cos(m\varphi) \\
\textrm{Even Zernike Polymomial :} \quad \mathcal{Z}_{n}^{-m}(\rho, \varphi):\mathcal{R}_n^m(\rho)\sin(m\varphi) \\
\textrm{Radial polynomials :} \quad \mathcal{R}_n^m(\rho): \Sigma_{k=0}^{\frac{n-m}{2}}\frac{(-1)^k(n-k)!}{k!(\frac{n+m}{2}-k)!(\frac{n-m}{2}-k)!}\rho^{n-2k} \\
\rho \textrm{ is the radial distance :} \quad 0 \leq \rho \leq 1 \\


The successful student should demonstrate an ImageJ plugin that computes the Zernike moments up to order n  of a circular region of interest (ROI) in an image (assumed 8 or 16 bit) and generate the result table in ImageJ.

Because of the high redundancy the reference implementation should be recursive .  Here is the complete description of the algorithm: Barmak2013_zernike1