Pseudo zernike moment for an image

7 views (last 30 days)
ancy micheal
ancy micheal on 8 Dec 2020
Commented: Bjorn Gustavsson on 11 Dec 2020
I want to extract Pseudo zernike moment for an image. I used the code from the link. https://in.mathworks.com/matlabcentral/fileexchange/33644-pseudo-zernike-functions. It works perfect for the given input but how do i extract moment fron an N*N imag

Answers (1)

Bjorn Gustavsson
Bjorn Gustavsson on 8 Dec 2020
The Zernike functions are defined on the unit-disk, i.e. circel with radius 1. Your image is likely square, so your choise is to calculate the Zernike expansion of your image inscribed into a unit-circle, or calculate the Zernike expansion of the region of your image that is inside an inscribed circle. In the second example in the help of the function the moments are calculated of an 101-by-101 pixels image of the peaks function (inscribed circle). If you step through that example you will see how to do this. If you after running that script run this snippet for a couple of i1s you will get the moments for the corresponding pseudo-Zernike-functions:
figure
i1 = 7;
scatter(r.*cos(theta),r.*sin(theta),23,P(:,i1),'filled'),
title(sprintf('n: %d, m: %d, Z_n^m: %f',n(i1),m(i1),M(i1)))
If you use this inscribed circle your moments will obviously not depend on what's in the corners of your image...
HTH
  8 Comments
ancy micheal
ancy micheal on 11 Dec 2020
Thank you sir for your timely response

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!