Skip to content
BTBurke edited this page Oct 24, 2011 · 11 revisions

Synfinger is a synthetic fingerprint generator written in Python. Synthetic fingerprints are helpful for testing biometric algorithms because the cost of collecting (or buying) large datasets is prohibitive. Synfinger is an adaptation of the SFinGe method published in Handbook of Fingerprint Recognition by Maltoni, et al. It has the following key features:

  • Creates left/right loop, arch, and whorl fingerprints (tented arch in development)

  • "Ground truth" minutiae detail can be extracted from an unperturbed, binarized, high SNR source image

  • Batch fingerprint generation mode to automatically vary types and quality of images

  • Database connectors to store uncompressed images and key parameters

  • Dilation and erosion to simulate wet and dry fingerprint captures

  • Creation of rolled and slap fingerprints

  • Control of fingerprint image quality (high-medium-low, or approximate SNR)

  • Multiple fingerprint impressions can be generated from a single master image (either at creation time or subsequently)

  • Interactive fingerprint generation to visualize how changes in parameters affect quality of output (in development) or use the CLI for batch generation

  • YAML configuration files to control batch attributes (in development) to control fine details of image or set acceptable bounds - ridge frequency, Henry classes, SNR, dilation/erosion, fingerprint size, sensor DPI

Dependencies:

Python Imaging Library, Numpy, Scipy (for morphological operators), Matplotlib

Usage:

synfinger.py - Generates a master image from which one or more impressions can be generated

synfingerpress.py - Creates or uses a master image to generate an impression with user-defined attributes (quality, etc.)

See the code for examples of how to call the routines.

Clone this wiki locally