cbi_toolbox.simu.optics
The optics module provides simulations of the optics of imaging systems for microscopy
Conventions:
arrays follow the ZXY convention, with
Z : depth axis (axial, focus axis)
X : horizontal axis (lateral)
Y : vertical axis (lateral, rotation axis when relevant)
- cbi_toolbox.simu.optics.create_wf_1d(wf_object, upsampling=1, scale=1, copy=False)[source]
Create a 1D wavefront object from an existing wavefront
- Parameters
wf_object (poppy.FresnelWavefront) – the original wavefront
upsampling (int, optional) – upsampling factor (does not change the field of view), by default 1
scale (int, optional) – zoom factor (changes the field of view), by default 1
copy (bool, optional) – return a new object, by default False
- Returns
a 1D wavefront full of 1 with same properties as the input
- Return type
poppy.FresnelWavefront
- cbi_toolbox.simu.optics.gaussian_psf(npix_lateral=129, npix_axial=129, pixelscale=6.35e-07, wavelength=5e-07, numerical_aperture=0.5, refraction_index=1.33)[source]
Compute an approximate PSF model based on gaussian beam propagation
Koskela, O., Montonen, T., Belay, B. et al. Gaussian Light Model in Brightfield Optical Projection Tomography. Sci Rep 9, 13934 (2019). https://bib-ezproxy.epfl.ch:5295/10.1038/s41598-019-50469-6
- Parameters
npix_lateral (int, optional) – number of pixels in the lateral direction, by default 129
npix_axial (int, optional) – number of pixels in the axial direction, by default 129
pixelscale (float, optional) – pixelscale in meters per pixel, by default 1.3e-3/2048
wavelength (float, optional) – illumination wavelength in meters, by default 500e-9
numerical_aperture (float, optional) – objective NA, by default 0.5
refraction_index (float, optional) – imaging medium NA, by default 1.33
- Returns
the gaussian PSF
- Return type
array [ZXY]
- cbi_toolbox.simu.optics.openspim_illumination(wavelength=5e-07, refr_index=1.333, laser_radius=0.0012, objective_na=0.3, objective_focal=0.018, slit_opening=0.01, pixelscale=6.35e-07, npix_fov=512, rel_thresh=None, simu_size=2048, oversample=16)[source]
Compute the illumination function of an OpenSPIM device
- Parameters
wavelength (float, optional) – illumination wavelength in meters, by default 500e-9
refr_index (float, optional) – imaging medium refraction index, by default 1.333
laser_radius (float, optional) – source laser radius in meters, by default 1.2e-3
objective_na (float, optional) – illumination objective NA, by default 0.3
objective_focal (float, optional) – illumination objective focal length in meters, by default 18e-3
slit_opening (float, optional) – vertical slit opening in meters, by default 10e-3
pixelscale (float, optional) – target pixelscale in meters per pixel, by default 1.3e-3/2048
npix_fov (int, optional) – target size in pixels, by default 512
rel_thresh (float, optional) – relative threshold to crop the beam thickness if a full row is below this theshold, all rows after are removed will be computed as compared to the maximum pixel
simu_size (int, optional) – size of the arrays used for simulation, by default 2048
oversample (int, optional) – oversampling used for the simulation (must be increased sith simu_size), by default 16
- Returns
the illumination function
- Return type
array [ZXY]
- cbi_toolbox.simu.optics.resample_wavefront(wf, pixelscale, npixels)[source]
Resample 1D wavefront to new pixelscale (adapted from poppy.poppy_core._resample_wavefront_pixelscale)
- Parameters
wf (poppy.FresnelWavefront) – a 1D wavefront
pixelscale (astropy.units.[distance] / astropy.units.pixel) – target pixelscale
npixels (int) – target size in pixels
- Returns
resampled and resized 1D wavefront
- Return type
poppy.FresnelWavefront
- cbi_toolbox.simu.optics.wf_mix(wf1, wf2, ref=None)[source]
Compute a 2D wavefront by multiplying 2 1D wavefronts (for separable propagation)
- Parameters
wf1 (poppy.FresnelWavefront) – a 1D wavefront
wf2 (poppy.FresnelWavefront) – a 1D wavefront
ref (poppy.FresnelWavefront, optional) – reference wavefront for the parameters of the output, by default None (wf1 will be used)
- Returns
the 2D mixed wavefront
- Return type
poppy.FresnelWavefront
- Raises
ValueError – if the input wavefronts have different pixelscales
- cbi_toolbox.simu.optics.wf_to_2d(wf_object, npix=None, copy=False)[source]
Convert a 1D wavefront to 2D (for plotting only)
- Parameters
wf_object (poppy.FresnelWavefront) – the 1D wavefront
npix (int, optional) – crop to a size of npix, by default None
copy (bool, optional) – return a new object, by default False
- Returns
the 2D wavefront
- Return type
poppy.FresnelWavefront