This repository contains a collection of Jupyter notebooks developed as part of the Computational Optical Imaging course at EPFL. In this course, we learnt how to use computational tools to simulate optical systems and combine them with neural networks that process optical images.
-
Optical wave propagation
- Free-space propagation
- Beam propagation method (BPM)
- Thin transparencies: lenses and gratings
- Imaging systems
- Digital holography
- Computer-generated holograms (CGH)
-
Multi-layer networks
- Neural architectures for image enhancement and inversion
- Training principles for optical simulations
-
Microscopy
- UNet-based super-resolution
- Digital staining
- Phase retrieval from intensity images
-
Scattering media
- Phase conjugation
- Matrix methods
- DNNs for focusing and imaging through multimode fibers (MMFs)
- Ptychography
-
Inverse scattering
- Optical diffraction tomography
- MaxwellNet and inverse-scattering reconstruction
| Notebook | Title / Topic |
|---|---|
GX_01.ipynb |
Free space propagation |
GX_02.ipynb |
Angular Spectrum Method, diffraction |
GX_03.ipynb |
GRIN, BPM |
GX_04.ipynb |
Zernike phase shift contrast microscope |
GX_05.ipynb |
Coherent & Incoherent, Fourier optics |
GX_06.ipynb |
NN for optics |
GX_07.ipynb |
Feature size |
GX_08.ipynb |
Gerchberg Saxton algorithm |
GX_09.ipynb |
Waveguides |
GX_10.ipynb |
Holography |
GX_11.ipynb |
Fibers |
