GithubHelp home page GithubHelp logo

mdedonno1337 / nist Goto Github PK

View Code? Open in Web Editor NEW
14.0 4.0 4.0 8.97 MB

Legacy Python 2 library to read and write ANSI NIST files (from Type-01 to Type-99 ; fingerprint oriented).

License: GNU General Public License v3.0

Python 100.00%
nist fingerprint dna biometrics

nist's Introduction

Python NIST library

Welcome to the documentation of the python NIST library. The aim of the python library is to open, modify and write Biometric Information files based on the standard proposed by the NIST (for short: NIST format) [NIST2013].

This python library contains a main module to read and write NIST files (named 'NIST.traditional'), and a second module to work with fingerprint related NIST files (named 'NIST.fingerprint'). Some complementary modules are provided for some particular cases.

The developpement and maintainance have been made by Marco De Donno, School of Criminal Justice, Faculty of Law, Criminal Justice and Public Administration, University of Lausanne, Switzerland. This library is not related to the National Institute of Standards and Technology.

NIST2013

Data Format for the Interchange of Fingerprint, Facial & Other Biometric Information, NIST Special Publication 500-290 Rev1 (2013), https://www.nist.gov/itl/iad/image-group/ansinist-itl-standard-references

nist's People

Contributors

mdedonno1337 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

nist's Issues

Functional focus of library

It should be noted in the description of this library that the purpose is the processing of latent fingerprints and in particular the processing of marked minutiae. This library is not for general parsing of NIST biometric files used to exchange fingerprints (or other biometrics) not related to a latent print workflow.

Python 3

Hi Marco,

Ayant besoin de la version en Python 3, j’ai travaillé dessus et j’ai à présent une solution fonctionnelle pour mes cas d’utilisation (visage, trace, doigts dans type 14).
J’insiste sur ce dernier point car je ne peux pas dire que le code est entièrement validé.

J’ai choisi de rester autant que possible en mode string sachant que les strings de Python 3 gère l’unicode. Je garde les données binaires (image) en binaire et je ne fais la conversion en texte (hexa) que lors de l’affichage.
Si vous utilisez BeyondCompare pour voir les différences, vous verrez qu’il y en a peu.
J’ai corrigé les cas d’utilisation injustifiée de list quand l’énumérateur est utilisé dans une boucle ou un test d’appartenance.
Je les ai laissé dans un cas au moins où une liste est modifiée alors qu’on itère dessus: ce serait à revoir mais je n’ai pas encore réfléchi comment faire.
Je suis comme vous, j’ai un peu d’autres urgences :-)

Faites-moi part de vos commentaires!

Cordialement,
JEan-Pierre

Le 20 déc. 2020 à 21:13, Marco De Donno [email protected] a écrit :

I have a WIP branch here for python3.
I will check the field 13.005.
Regading the WSQ implementation, my WSQ lib does it (as least for Windows and Linux, based upon the binaries from NBIS). You have the one from IDEMIA (https://github.com/idemia/python-wsq https://github.com/idemia/python-wsq) that imports and compile the NBIS binaries. My docker version of the NBIS does it as well (https://github.com/mdedonno1337/docker-NBIS https://github.com/mdedonno1337/docker-NBIS); docker is the best way I have to share code with non Linux users, in particular the Mac users at work.


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub #3 (comment), or unsubscribe https://github.com/notifications/unsubscribe-auth/AB2773TRJBJMD5YNTUWNA53SVZLHLANCNFSM4U7K64JA.

Originally posted by @Picard2200 in #3 (comment)

No module named MDmisc

Hello Marco,

I was trying to import the NIST Module, but I got an error regarding the MDmisc module: "ImportError:No module named MDmisc". Is there any way you can commit the MDmisc module to this project?

Unable to modify field 9.004 from S to U

Hi,

First I would like to say that I love your library: very easy to use and I have been able to generate NIST files with records 10 and 14 with no issue and very easily (I insist on that point). I love it so much that I am thinking about porting it to Python 3.

I try to generate a latent NIST file with field 9.004 set to U instead the hard coded S and do not succeed to do it.

I started from your example doctester.py and just added the line mark.set_field("9.004", 'U') .
I still have S when I print the mark record.

Below is my code:

# -*- coding: UTF-8 -*-

import NIST.core.functions
import NIST.traditional.__init__

import NIST.fingerprint.__init__
import NIST.fingerprint.functions

import NIST.plugins.MDD.__init__
from NIST.fingerprint.functions import AnnotationList
from MDmisc.string import join, join_r
from NIST.core.config import RS, US

l_mark = NIST.fingerprint.__init__.NISTf()
l_mark.add_Type01()
l_mark.add_Type02()

l_idc = 1
l_mark.add_Type09(l_idc)
#
lst = [
    [1, 7.85, 7.05, 290, 0, 'A'],
    [2, 13.80, 15.30, 155, 0, 'A'],
    [3, 11.46, 22.32, 224, 0, 'B'],
    [4, 22.61, 25.17, 194, 0, 'A'],
    [5, 6.97, 8.48, 153, 0, 'B'],
    [6, 12.58, 19.88, 346, 0, 'A'],
    [7, 19.69, 19.80, 111, 0, 'C'],
    [8, 12.31, 3.87, 147, 0, 'A'],
    [9, 13.88, 14.29, 330, 0, 'D'],
    [10, 15.47, 22.49, 271, 0, 'D']
]

minutiae = AnnotationList()
minutiae.from_list(lst, format="ixytqd", type='Minutia')

l_mark.set_minutiae(minutiae, l_idc)
l_mark.set_field("9.004", 'U')
#

lst = [
    [12.5, 18.7],
    [10.0, 12.7]
]

cores = AnnotationList()
cores.from_list(lst, "xy", "Core")
# l_mark.set_cores([[12.5, 18.7]], 1)

l_mark.add_Type13((500, 500), 500, l_idc)
print(l_mark)

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.