Snapshot Space-Time Holographic 3D Particle Tracking Velocimetry in Laser & Photonics Reviews, 2021.
Ni Chen*, Congli Wang*, and Wolfgang Heidrich
King Abdullah University of Science and Technology
*denotes equal contribution
This repository contains MATLAB and CUDA (not yet published) implementation of the Holo-Flow framework.
- Matlab or CUDA.
- Two Matalb Addons are also required for visualization:
- Clone the code
git clone https://github.com/Ni-Chen/HoloFlow-PTV.git
-
Download the sample data from Dropbox, and put it in folder of 'code/data/simulation'
-
Run the code
-
For MATLAB version, go into /HoloFlow-PTV/code/, run 'main.m'.
-
For CUDA version, compile the code firstly. (Documentation is under construction.)
-
Sample results:
-
particle volumes | hologram #1 | hologram #2 | reconstructed flow |
---|---|---|---|
- Prepare your data if you need to test it.
-
The hologram frames are stored in ./data/ as a .mat file
-
The .mat file is of size
$N_y \times N_x \times N_{frame}$ , where $N_y \times N_x $ is the hologram dimensions and$N_{frame}$ is the frame number. -
The holography system parameters are stored as a structure and named as params, where
-
params.dz % depth interval of the object
params.Nz % depth number of the particle volume
params.Nx/Ny % lateral dimension of the particle volume
params.pps % pixel pitch of the hologram
params.lambda % wavelength of the light source
- For the Holo-Flow reconstruction, you need to set the below parameters:
%% holo solver parameters
fasta.ratio = 1; % alpha-beta ratio if the lateral and axial pixel pitch are different in the particle volume
fasta.mu = 0.1; % FASTA deconvolution
fasta.maxIters = 20; % FASTA iteration number, 10-20 is OK
%% flow parameters
flow.flow.warping_iters = [3 3 3]; % Depends on the range of the flow
flow.flow.ratio = ratio; % alpha-beta ratio if the lateral and axial pixel pitch are different in the particle volume
flow.flow.priors = priors; %[1e-4 1e-4 1e-6 1e-6]
flow.cg.maxit = 1000; % Flow solver iteration number
flow.cg.tol = 1e-3; % flow error tollorance
% additional parameters
other.tau = 0.001; % As the difination in the paper
other.maxit = 3; % The outer iteration
Ni Chen (nichen.optics@gmail.com), Congli Wang (congli.wang@kaust.edu.sa)