Rank: 1231 based on 96 downloads (last 30 days) and 1 file submitted
photo

Amir Tahmasbi

E-mail
Company/University
University of Texas at Dallas

Personal Profile:

PhD student at University of Texas at Dallas,
Research assistant at University of Texas Southwestern Medical Center.

LinkedIn:
http://www.linkedin.com/pub/amir-tahmasbi/40/a78/650

Professional URL:
http://www.utdallas.edu/~a.tahmasbi/index.html

Publications:
http://scholar.google.com/citations?user=Q_u6pOMAAAAJ&hl=en

Professional Interests:
Statistical signal processing, Image processing

 

Watch this Author's files

 

Files Posted by Amir
Updated   File Tags Downloads
(last 30 days)
Comments Rating
31 May 2013 Screenshot Zernike Moments MATLAB Code for the Fast Calculation of Zernike Moments of order n and repetition m on NxN images. Author: Amir Tahmasbi image processing, mathematics, physics, signal processing 96 26
  • 4.22222
4.2 | 9 ratings
Comments and Ratings by Amir View all
Updated File Comments Rating
31 Jul 2014 Zernike Moments MATLAB Code for the Fast Calculation of Zernike Moments of order n and repetition m on NxN images. Author: Amir Tahmasbi

Hi Frederik,

Thank you for your interest in my code. I have addressed your concerns as follows:

1- Regarding “Product = p(x,y).*Rad.*exp(-1i*m*Theta);” I should say this is actually correct. Remember that the Zernike moments are calculated by multiplying the input image p(x,y) and the complex conjugate of 2-D Zernike basis functions (typically denoted by V_n,m = R_n,m(\rho) . exp(j m \theta). In other words, we have “Product = p(x,y) V*_m,n = p(x,y) . R_n,m(\rho) . exp( - j m \theta)” .The negative sign that you are refereeing to is, therefore, added due to the complex conjugate operator. For a clearer explanation please see my paper, p. 730, eq. 11 (available on-line at http://www.utdallas.edu/~a.tahmasbi/publications/Zernike_CBM_2011.pdf ). Also you can take a look at the classic paper on Zernike moments by Dr. Khotanzad, p. 490, eq. 5 (available on-line at http://optics.sgu.ru/~ulianov/Bazarova/LASCA_literature/InvariantImageRecognitionZernikeMoments.pdf ). You can further verify this using eq. 49 in the web page you sent me.
2- You are right. The mapping we have used in the code, loses the information of the corners of the image. This is, however, a common mapping strategy from the image space into the unit disk that researchers typically use for the calculation of the Zernike moments (see e.g. Dr. Khotanzad’s paper above). From a practical point of view, it usually does not cause any problem since the object of interest is scaled such that it is circumscribed by the unit disc.
3- The code can easily be generalized to the non-square shaped ROIs. Since this is a questions that many other people have also asked, I will update the code on the MATLAB central page for rectangular shaped images when I get a chance (probably in a few weeks). You can also do it yourself.
4- I can make some MxN test image sets, but I will need some time to do this. You can also make those images using the square images I put on the MATLAB central page (just add say 5 rows above and below the ROI). Then, you can rotate the object within the same ROI and verify if the magnitudes of the moments remain the same.

23 Jul 2013 Zernike Moments MATLAB Code for the Fast Calculation of Zernike Moments of order n and repetition m on NxN images. Author: Amir Tahmasbi

Hi Mitra,

1- It mainly depends on your application and you need some experience to pick the appropriate order (n) and repetition (m) for your moments. However, the rule of thumb is that the lower orders provide less information (details) but are more robust to noise. Higher orders, on the other hand, provide more information about the details of the object but are more sensitive to the measurement noise. An efficient way is to calculate the Zernike moments for a variety of m and n values. You may then apply a feature selection algorithm and remove the correlated features (moments). You can finally use a group of say 20 moments, which are reasonably uncorrelated, to pass to your classifier.

2- I think with appropriate preprocessing steps, the Zernike moments should be useful for Farsi digit recognition.

Regards,
Amir

11 Jul 2013 Zernike Moments MATLAB Code for the Fast Calculation of Zernike Moments of order n and repetition m on NxN images. Author: Amir Tahmasbi

Hi Shriniwas,

Yes, the code is capable of calculating the Zernike moments of any order and repetition. All you need to do is change m (repetition) and n (order). The default ones are n=4 and m=2. Hope this helps.

Cheers,
Amir

13 Jun 2013 Zernike Moments MATLAB Code for the Fast Calculation of Zernike Moments of order n and repetition m on NxN images. Author: Amir Tahmasbi

Hi Reyadh,

In principle, the Zernike moments can be extracted from any shape. However, in your case, there could be a variety of potential issues. First of all, you need to make sure the objects (palm prints) are of equal size within the ROI. If not, you need to equalize the size of your objects in all ROIs.

The other thing is that the palm prints are more complicated object than simple shapes, e.g. oval and circle. Thus, you might need to extract a set of higher order Zernike moments. You can then use these moments to classify the palm prints of different people more reliably.

FYI, the magnitude of the Zernike moments of two similar shapes might be slightly vary due to the pixelation and noise. But the difference should be insignificant.

Cheers

04 May 2013 Zernike Moments MATLAB Code for the Fast Calculation of Zernike Moments of order n and repetition m on NxN images. Author: Amir Tahmasbi

Hi Tareq

Thanks! The input arguments "m" and "n" are scalars. This means that if you would like to extract say 32 moments, you need to have a "for loop" in which you change "n" and "m", and call the Zernikemoment(p, n, m). Depending on your application you can either change "n" from y to 32+y or use different combinations of "m" and "n". For more information, see Table 1 in page 731 of this article:

http://www.utdallas.edu/~a.tahmasbi/publications/Zernike_CBM_2011.pdf

Hope this helps.

Comments and Ratings on Amir's Files View all
Updated File Comment by Comments Rating
31 Jul 2014 Zernike Moments MATLAB Code for the Fast Calculation of Zernike Moments of order n and repetition m on NxN images. Author: Amir Tahmasbi Tahmasbi, Amir

Hi Frederik,

Thank you for your interest in my code. I have addressed your concerns as follows:

1- Regarding “Product = p(x,y).*Rad.*exp(-1i*m*Theta);” I should say this is actually correct. Remember that the Zernike moments are calculated by multiplying the input image p(x,y) and the complex conjugate of 2-D Zernike basis functions (typically denoted by V_n,m = R_n,m(\rho) . exp(j m \theta). In other words, we have “Product = p(x,y) V*_m,n = p(x,y) . R_n,m(\rho) . exp( - j m \theta)” .The negative sign that you are refereeing to is, therefore, added due to the complex conjugate operator. For a clearer explanation please see my paper, p. 730, eq. 11 (available on-line at http://www.utdallas.edu/~a.tahmasbi/publications/Zernike_CBM_2011.pdf ). Also you can take a look at the classic paper on Zernike moments by Dr. Khotanzad, p. 490, eq. 5 (available on-line at http://optics.sgu.ru/~ulianov/Bazarova/LASCA_literature/InvariantImageRecognitionZernikeMoments.pdf ). You can further verify this using eq. 49 in the web page you sent me.
2- You are right. The mapping we have used in the code, loses the information of the corners of the image. This is, however, a common mapping strategy from the image space into the unit disk that researchers typically use for the calculation of the Zernike moments (see e.g. Dr. Khotanzad’s paper above). From a practical point of view, it usually does not cause any problem since the object of interest is scaled such that it is circumscribed by the unit disc.
3- The code can easily be generalized to the non-square shaped ROIs. Since this is a questions that many other people have also asked, I will update the code on the MATLAB central page for rectangular shaped images when I get a chance (probably in a few weeks). You can also do it yourself.
4- I can make some MxN test image sets, but I will need some time to do this. You can also make those images using the square images I put on the MATLAB central page (just add say 5 rows above and below the ROI). Then, you can rotate the object within the same ROI and verify if the magnitudes of the moments remain the same.

29 Jul 2014 Zernike Moments MATLAB Code for the Fast Calculation of Zernike Moments of order n and repetition m on NxN images. Author: Amir Tahmasbi Frederik

Hello Amir,
first of all, thanks for sharing your code.
secondly i would like to ask a question, in which i dont know if i make a mistake or you did in your code.

Product = p(x,y).*Rad.*exp(i*m*Theta)
to calculate the complex polynominal in all the formulars i found
(e.g: http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/SHUTLER3/node11.html )
its written that j = sqrt(-1);
you wrote in your code -1*i instead, which is not the same. because sqrt(-1) is just the definition of the complex number to be i. so am i wrong or should it be:

Product = p(x,y).*Rad.*exp(i*m*Theta)

in your code, without the -1?

i hope its understandable what i want to say.

tanks again, frederik

01 Jun 2014 Zernike Moments MATLAB Code for the Fast Calculation of Zernike Moments of order n and repetition m on NxN images. Author: Amir Tahmasbi fathi

21 Apr 2014 Zernike Moments MATLAB Code for the Fast Calculation of Zernike Moments of order n and repetition m on NxN images. Author: Amir Tahmasbi fateme

Thank you

27 Nov 2013 Zernike Moments MATLAB Code for the Fast Calculation of Zernike Moments of order n and repetition m on NxN images. Author: Amir Tahmasbi Tsolakidis, Dimitris

Hello Amir. Thank you for your code. I have used your code to calculate zernike moments from an image, but i'm having problem reconstruct the image from it's moments. Could you provide me some help please?

Contact us