Skip to content

robin9804/openholo_py

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

openholo_py

OpenHolo is an open source library which contains algorithms and their software implementation for generation of holograms to be applied in various fields. The goal behind the library development is facilitating production of digital holographic contents and expanding the area of their application. The developed by us open source library is a tool for computer generation of holograms, simulations and signal processing at various formats of 3D input data and properties of the 3D displays. Based on this, we want to lay the foundation for commercializing digital holographic service in various fields. The OpenHolo library has been developed in conjunction with the following development environment and provides Q & A, Open Source Software, Target Platform and BSD License.

For more information about Openholo, see the openholo homepage Here

Installation

python -m pip install ophpy

Requirement

Numpy, Numba, Matplotlib, pillow, plyfile

Procedure

Data input > Propagation > Encoding > Normalization > Save

Usage

Generate Holographic Fringe pattern based on PointCloud data, 2D image, Depthmap image

Example

Point Cloud
from ophpy import PointCloud

input_data = 'PointCloud_Dice_RGB.ply'
RS = PointCloud.Propagation(input_data, method='RS', angleY=1)

Red_image = RS.CalHolo('red')  # RS integral methods
plt.imshow(np.angle(Red_image))  # show phase angle data of red light fringe pattern

RS.getRGBImage(Red_image, RS.CalHolo('green'), RS.CalHolo('blue'), 'test file name.bmp', type='angle')

You can use Rayleigh-Sommerfeld diffraction or Fresnel diffraction integral

2D image
from ophpy import Image2D

input_img = 'Dice_RGB.bmp'
f = Image2D.Propagation(input_img, angleY=0.8)
Red_image = f.Fresnel('red')  # Fresnel propagation using Single FFT
plt.imshow(np.angle(Red_image))
f.getRGBImage(Red_image, f.Fresnel('green'), f.Fresnel('blue'), 'test file name.bmp', type='angle')

You can use Angular spectrum method and Fresnel propagation using Single FFT

Depthmap
from ophpy import Depthmap

input_img = 'Dice_RGB.bmp'
input_depthmap = 'Dice_depth.bmp'
D = Depthmap.Propagation(input_img, input_depthmap)
Red_image = D.parallelCal('red')  # using parallel calculation
D.getRGBImage(Red_image, D.parallelCal('green'), D.parallelCal('blue'), 'test file name.bmp', tyep='angle')
plt.imshow(np.angle(Red_image))

About

python project by openholo

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages