GithubHelp home page GithubHelp logo

dottd / pynger Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 1.0 432 KB

Package for fingerprint analysis

License: MIT License

Makefile 0.35% Python 44.58% C++ 35.87% C 19.19%
biometrics fingerprints image-processing image-segmentation python python3 python-c-extension scikit-learn fingerprint-generation

pynger's Introduction

Pynger

This package was developed during my Ph.D. as a mean to share frequently-used code snippets among larger projects and easily make tests.

It contains:

  • the algorithms developed in Pierluigi Maponi, Riccardo Piergallini, and Filippo Santarelli. “Fingerprint Orientation Refinement Through Iterative Smoothing”. In: Signal & Image Processing : An International Journal 8.5 (Oct. 2017), pp. 29-43.
  • some algorithms of the NBIS library ported to Python
  • utilities for parameters selection through CMA-ES
  • a partial implementation of the SFinGe generator
  • fingerprint visualization utilities
  • estimators to make part of the package Scikit-Learn compliant
  • utilities for complex field manipulation, calculus and visualization
  • functions for image and mask manipulation
  • some procedures for signal processing, among which an implementation of the Fast anisotropic Gauss filter introduced by Geusebroek, J-M., Arnold WM Smeulders, and Joost Van De Weijer. "Fast anisotropic gauss filtering." IEEE Transactions on Image Processing 12.8 (2003): 938-943.

Note: Regretfully, I am not maintaining this package anymore, since I no longer work with fingerprints.

Installation

Installing it the usual way, through pip, is not possible because there are functions written in C that need to be compiled and linked. If you are not interested in these C functions, you can skip most of the following steps and slightly modify the setup script to disable their compilation.

The package should be installed using make, but please ensure to meet all the requirements. You can read Makefile and setup.py for a deeper understanding of what is under the hood, however the installation steps should be as follows.

  • Create a folder where all the required libraries will be installed as static libraries, let's call it LIBDIR. Even though this is not convenient for reusing such libraries in other projects, this reflects the folder structure in my system at that time and I not going to change it soon.
  • Install the NBIS library as separate static libraries and not as a single .a file in a folder called nbis-install under LIBDIR. You can follow the guidelines in the official repository.
  • Install OpenBLAS as static libraries in a folder called openblas-install under LIBDIR.
  • Install Lapack as static libraries in a folder called lp-install under LIBDIR.
  • Install Armadillo as static libraries in a folder called armadillo-install under LIBDIR.
  • Install OpenCV as static libraries in a folder called cv-install under LIBDIR.
  • Run LIBDIR=/path/to/LIBDIR && make install

Other targets are available to make:

  • dev to install in development mode
  • clean to clean the project directory from compilation and installation leftover
  • uninstall
  • rebuild, that is a short for clean uninstall install
  • doc to produce Sphinx documentation from the scripts. Although far from being comprehensive, it can be a good help to start with the package.
  • undoc to remove the documentation folder.

Tests

Due to the fast development required during the Ph.D. I was not able to generate a suite of tests. Actually, most of the functions need to be thoroughly checked and any good hearted contributor will be welcomed.

Contributing

Any contribution will be very much appreciated. Feel free to contact me in case of any doubts about contributing.

Authors

License

This project is licensed under the MIT License - see the LICENSE file for details.

pynger's People

Contributors

dottd avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

manjushanair

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.