✨This library introduces the current production process of computer holography, and uses MATLAB and Python to record and reproduce holograms. In the future, I will build a computer hologram simulation framework or a simulation application program.
CGH stands for computer-generated holograms (CGH). Holograms are unique in their ability to record both the intensity and phase of information.
More Resource to learn holography 👉 Awesome Holography👈
The iterative algorithm usually starts from an approximation of the target hologram, and continuously optimizes the approximate hologram through a series of repeated operations until the reconstructed image obtained by the approximation meets certain error requirements.
According to the amplitude distribution of the hologram plane and the reconstructed image plane, the phase information of the light field in the hologram plane can be obtained by iterating the forward and reverse light wave transmission and the restrictions imposed on the two planes.
| Algorithm | Paper | Link |
|---|---|---|
| GS(Gerchberg-Saxton) Algorithm | 👉Paper | Code |
| Fienup Algorithm | 👉Paper | Code |
The error diffusion algorithm iterates between the pixels of the hologram plane in turn, rather than between the hologram plane and the object image plane,Without any information of the object image, only the complex amplitude hologram itself can be directly operated on it and a pure phase hologram can be calculated.
| Algorithm | Paper | Link |
|---|---|---|
| Error Diffusion Algorithm | 👉Paper | Code |
| CGH Class | Document | Link |
|---|---|---|
| Circuitous Phase Type Hologram/Fourier Hologram【迂回位相型全息图】 | 👉Doc | Code |
| Kinoform【相息图】 | 👉Doc | Code |
| Fresnel Hologram【菲涅尔全息图】 | 👉Doc | Code |
| Off Axis Interference Hologram【离轴干涉全息图】 | 👉Doc | Code |
Working on a hologram simulation API.
Before experimenting, it's best to understand common image formats and their fundamentals. Understanding the pixel level of an image will help you experiment better and give you a better understanding of the fundamentals of image processing.
Here are some examples of images you should pay more attention to the suffix of the image, and the size of the image, so that you can work with the image later.
Circuitous Phase Type Hologram/Fourier Hologram is Binary hologram.
For this experiment we used this image for testing
Please read this Document.
Two ways to do experiments are provided here, Matlab or Python, and you can choose the familiar way to run the code.
- Run the
fourier_hologram.morfourier_hologram.py, They are in the Python and Matlab folders respectively. - Then you will get Circuitous Phase Type Hologram/Fourier Hologram below.
- Finally, after running the program, you can get the reproduced graph and compare it with the original image.
For this experiment we used this image for testing
Please read this Document.
Two ways to do experiments are provided here, Matlab or Python, and you can choose the familiar way to run the code.
- Run the
kinoforms.morkinoforms.py, They are in the Python and Matlab folders respectively. - Then you will get Kinoform below.
- Finally, after running the program, you can get the reproduced graph and compare it with the original image.
For this experiment we used this image for testing
Please read this Document.
Two ways to do experiments are provided here, Matlab or Python, and you can choose the familiar way to run the code.
- Run the
offaxis_interference_hologram.moroffaxis_interference_hologram.py, They are in the Python and Matlab folders respectively. - Then you will get Off Axis Interference Hologram below.
- Finally, after running the program, you can get the reproduced graph and compare it with the original image.
If you have any questions or good ideas, please contact: jackcc0701@163.com








