Contribute Media
A thank you to everyone who makes this possible: Read More

HoloPy: Holograpy and Light Scattering in Python


Digital holography microscopy is a powerful tool for fast 3D imaging of soft matter systems. However, making measurements from holograms requires special computation. HoloPy is a set of tools for reconstructing and fitting to holograms. It also includes tools for computing light scattering, setting up inverse problems, and working with images and metadata.


Digital holographic microscopy is fast and powerful tool for 3D imaging. Holography captures information about a 3D scene onto a 2D camera using interference. This means that the speed of holographic imaging is limited only by camera speed, making holography an ideal tool for studying fast processes in soft matter systems. However, making use of this encoded information requires significant computational post processing. We have developed and released HoloPy, a python based tool for doing these calculations.

The traditional method for extracting information from holograms is to optically reconstruct by shining light through a hologram to obtain an image of the recorded scene. HoloPy implements the digital equivalent of this, numerical reconstruction, in the form of light propagation by convolution. This is a fast technique based on fast Fourier transforms, which effectively allows refocusing a holographic image after it is taken.

For systems where a detailed scattering model is available, Lee and coworkers showed that it is possible to make more precise measurements by fitting a scattering model to a recorded hologram [1]. We have extended this technique to clusters of spheres [2][3] and to non-spherical particles [4]. HoloPy implements all of these fitting techniques such that they can be used with a few lines of python code. HoloPy also exposes an interface to all of its scattering models compute light scattering of microscopic particles or clusters of particles for other purposes.

HoloPy is open source (GPLv3) and is hosted on launchpad. HoloPy uses Numpy for most of its manipulations, though it calls out to Fortran and C codes to compute light scattering. HoloPy also includes matplotlib and mayavi based tools for visualizing holograms and particles.

[1] Lee, Optics Express, Vol. 15, Issue 26, pp. 18275-18282 (2007)

[2] Fung et. al., JQSRT, Vol 113, Issue 18, pp. 2482-2489 (2012)

[3] Perry et. al., Faraday Discussions, Vol 159, pp. 211-234 (2012)

[4] Wang et. al. JQSRT, (2014)

Improve this page