Skip to content

vikroe/phasereconstruction

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Phase Reconstruction

Implementations of the fast iterative shrinkage-thresholding algorithm for in-line digital holography. A prototype of the implementation is done in Matlab and the final implementation is done in C++ CUDA with the help of OpenCV. The final implementation was later integrated into a the already existing code for a dielectrophoretic micromanipulation platform available at https://github.com/aa4cc/twinbeam-setup/tree/phasereconstruction/JetsonCode.

Usage

Matlab prototype

Open the folder MatlabFiles/ and add folders utils to path.

If desired, fill in new parameters to the file parameters.m, otherwise just run the file main.m and wait for the resulting figures.

CUDA implementation

The author tested this implementation on Ubuntu 18.04 and Ubuntu 20.04.

CUDA capable device is needed for this implementation to run. In the folder CUDAFiles, first, set the CUDA architecture on line 21 of CMakeLists.txt, current settings are for GTX 660. If OpenCV and CUDA (tested on CUDA 10.0) are installed, it should then be possible to compile the code with CMake. Then run the binary file phasereconstruction.

If desired, change parameters in the file params.json.

Technologies

The different algorithms are implemented in Matlab.

Real-time implementation is done in C++ CUDA with OpenCV for parsing input and output media files and displaying. Json parsing by nlohmann https://github.com/nlohmann/json is used as well.

References

The implementation of the fast iterative shrinkage-thresholding algorithm is strongly based on the algorithm described in

F. Momey, L. Denis, T. Olivier, and C. Fournier, �From fienup�s phase retrieval techniques to regularized inversion for in-line holography: Tutorial,� Journal of the Optical Society of America A, vol. 36, no. 12, p. D62, Nov. 2019

Further, the Matlab prototype was inspired by the code found in repository https://github.com/fabienmomey/Inline_Hologram_Reconstruction_by_Regularized_Inversion

Contact

In case of any questions, please ask on v.koropecky@protonmail.com.