我有代码,显示在这里,它可以在给定初始图像的情况下制作计算机生成的全息图。程序当前使用的图像可以在图像目录中找到。
我的程序大约需要。运行一分钟,这是一个 10x10 像素的 A,它只有 14 个点,嵌套的 for 循环实际关心的点。减速是getComplexwave函数中的:
def getComplexwave():
'''Iterate through every source point, and calculate the complex wave
contribution at each sampling pixel on the film.'''
for o in xrange(objPointShape):
print o+1
for i in xrange(ipxShape):
for j in xrange(ipyShape):
dx=objectpoints[o][0] - ipx[0][i]
dy=objectpoints[o][1] - ipy[0][j]
dz=objectpoints[o][2]
distance=np.sqrt(dx**2+dy**2+dz**2)
complexwave=np.exp(1j*k*distance)
hologram[i][j]=hologram[i][j]+complexwave
有人可以帮我把它矢量化,或者至少让它更快吗?我对python还是很陌生。
此外,任何其他使代码更好的建议将不胜感激!输出应如下所示。
需要它的人的分析信息。请注意,这只是前十个,并且是按内部时间排序的。