Skip to main content

Python Package for Laser Speckle Contrast Imaging

Project description

PyLSCI

A Python Package for Laser Speckle Contrast Imaging.


The code for this package was developed for my thesis on Fingerprint Presentation Attack Detection using Laser Speckle Contrast Imaging:

  • Keilbach, P., Kolberg, J., Gomez-Barrero, M., Busch, C., & Langweg, H. (2018). Fingerprint Presentation Attack Detection using Laser Speckle Contrast Imaging. International Conference of the Biometrics Special Interest Group (BIOSIG), Darmstadt, 2018, pp. 1-6, doi: https://10.23919/BIOSIG.2018.8552931.

Installation

pip install pylsci

Dependencies

The PyLSCI packages depends on NumPy, since it is used to do all the array related calculations.

Usage

from pylsci import Lsci

# you will somehow need to convert raw speckle images to numpy arrays, eg using matplotlib
from matplotlib import pyplot as plt

# you will need speckle images as numpy 2D array (single speckle image) for spatial contrast calculation ...
speckle_img = plt.imread('img/spatial.tif')
# or a sequence of speckle images as a numpy 3D array (time series of speckle images) 
# for temporal or spatio-temporal contrast calculation
# stack_images() is some custom function that converts the image sequence to a 3D array
speckle_img_sequence = plt.imread('img/temporal.png').stack_images()

# create an Lsci object
lsci = Lsci()

# the spatial contrast requires a single speckle image as a numpy 2D array
s_lsci = lsci.spatial_contrast(speckle_img)

# the temporal and spatio-temporal contrast requires a 3D array (time series of speckle images)
t_lsci = lsci.temporal_contrast(speckle_img_sequence)
st_lsci = lsci.spatio_temporal_contrast(speckle_img_sequence)

Implementation Details

Note that the iterations of the 2D or 3D arrays are not (yet) optimized. The temporal_contrast() function performs quite well, since numpy allows to calculate the standard deviation and mean along the temporal axis for the whole array. This is not the case for the spatial_contrast() and spatio_temporal_contrast() functions, where the implementations rely on inefficient, nested loops.

Please be aware of this as calculating the contrast with the spatial_contrast() and spatio_temporal_contrast() functions may take a long time.

Further Reading

To understand the theory and concepts of LSCI, the following papers are recommended:

  • Boas, D. A., & Dunn, A. K. (2010). Laser speckle contrast imaging in biomedical optics. Journal of biomedical optics, 15(1), 011109. https://doi.org/10.1117/1.3285504
  • Vaz, P. G., Humeau-Heurtier, A., Figueiras, E., Correia, C., & Cardoso, J. (2016). Laser Speckle Imaging to Monitor Microvascular Blood Flow: A Review. IEEE reviews in biomedical engineering, 9, 106–120. https://doi.org/10.1109/RBME.2016.2532598
  • Senarathna, J., Rege, A., Li, N., & Thakor, N. V. (2013). Laser Speckle Contrast Imaging: theory, instrumentation and applications. IEEE reviews in biomedical engineering, 6, 99–110. https://doi.org/10.1109/RBME.2013.2243140
  • Briers, D., Duncan, D. D., Hirst, E., Kirkpatrick, S. J., Larsson, M., Steenbergen, W., Stromberg, T., & Thompson, O. B. (2013). Laser speckle contrast imaging: theoretical and practical limitations. Journal of biomedical optics, 18(6), 066018. https://doi.org/10.1117/1.JBO.18.6.066018

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pylsci-1.0.0.tar.gz (4.8 kB view hashes)

Uploaded Source

Built Distribution

pylsci-1.0.0-py3-none-any.whl (5.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page