Want to convert python code to java

Joined
Apr 1, 2017
Messages
1
Reaction score
0
Hello guys,

I want to convert Python code to VB.net or Java

Plz help me

The code is for calculating Zernike moments
import numpy as np
from math import atan2
from numpy import cos, sin, conjugate, sqrt

def _slow_zernike_poly(Y,X,n,l):
def _polar(r,theta):
x = r * cos(theta)
y = r * sin(theta)
return 1.*x+1.j*y

def _factorial(n):
if n == 0: return 1.
return n * _factorial(n - 1)
y,x = Y[0],X[0]
vxy = np.zeros(Y.size, dtype=complex)
index = 0
for x,y in zip(X,Y):
Vnl = 0.
for m in range( int( (n-l)//2 ) + 1 ):
Vnl += (-1.)**m * _factorial(n-m) / \
( _factorial(m) * _factorial((n - 2*m + l) // 2) * _factorial((n - 2*m - l) // 2) ) * \
( sqrt(x*x + y*y)**(n - 2*m) * _polar(1.0, l*atan2(y,x)) )
vxy[index] = Vnl
index = index + 1

return vxy

def zernike_reconstruct(img, radius, D, cof):

idx = np.ones(img.shape)

cofy,cofx = cof
cofy = float(cofy)
cofx = float(cofx)
radius = float(radius)

Y,X = np.where(idx > 0)
P = img[Y,X].ravel()
Yn = ( (Y -cofy)/radius).ravel()
Xn = ( (X -cofx)/radius).ravel()

k = (np.sqrt(Xn**2 + Yn**2) <= 1.)
frac_center = np.array(P[k], np.double)
Yn = Yn[k]
Xn = Xn[k]
frac_center = frac_center.ravel()

# in the discrete case, the normalization factor is not pi but the number of pixels within the unit disk
npix = float(frac_center.size)

reconstr = np.zeros(img.size, dtype=complex)
accum = np.zeros(Yn.size, dtype=complex)

for n in range(D+1):
for l in range(n+1):
if (n-l)%2 == 0:
# get the zernike polynomial
vxy = _slow_zernike_poly(Yn, Xn, float(n), float(l))
# project the image onto the polynomial and calculate the moment
a = sum(frac_center * conjugate(vxy)) * (n + 1)/npix
# reconstruct
accum += a * vxy
reconstr[k] = accum
return reconstr

if __name__ == '__main__':

import cv2
import pylab as pl
from matplotlib import cm

D = 12

img = cv2.imread('fl.bmp', 0)

rows, cols = img.shape
radius = cols//2 if rows > cols else rows//2

reconst = zernike_reconstruct(img, radius, D, (rows/2., cols/2.))

reconst = reconst.reshape(img.shape)

pl.figure(1)
pl.imshow(img, cmap=cm.jet, origin = 'upper')
pl.figure(2)
pl.imshow(reconst.real, cmap=cm.jet, origin = 'upper')
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,794
Messages
2,569,641
Members
45,355
Latest member
SJLChristi

Latest Threads

Top