Pre-release ----------- Develop ~~~~~~~ Add: * Add support for loading dict objects in NIST. * Add support for tuple in the :func:`NIST.MDD.NIST_MDD.set_pairing()` function. * Add the :func:`NIST.fingerprint.NISTf.get_latent_hull()` function. * Add the :func:`NIST.fingerprint.functions.Point` and :func:`NIST.fingerprint.functions.Delta` objects. * Overload the '>>' operator for the :func:`NIST.fingerprint.functions.Annotation` object. * Add the function to sort :func:`NIST.fingerprint.functions.AnnotationsList` object based on the distance to a particular point. * Add the :func:`NIST.MDD.NIST_MDD.unpair()` function. * Add the :func:`NIST.fingerprint.NISTf.get_delta()` function, and the annotation of the deltas in the :func:`NIST.fingerprint.NISTf.annotate()` function. * Add the :func:`NIST.Morpho.NIST_Morpho.process_imageenh()` and :func:`NIST.Morpho.NIST_Morpho.get_delta()` functions. * Add support for WSQ as input for the :func:`NIST.fingerprint.functions.changeFormatImage()` function. * Add the :func:`NIST.ULWLQMetric.NISTULWLQMetric.get_minutiae()` function. Change: * Overload of the set_minutiae in the NIST_MDD class (to set the pairing information). * The :func:`NIST.fingerprint.NISTf.get_latent_triptych()` function returns the convex hull by default. * Set the resolution in the latent and print exported images. Commits since latest release: .. git_changelog:: :rev-list: latest.. v0.22 (2017-01-26) ~~~~~~~~~~~~~~~~~~ Add: * Add :func:`NIST.traditional.NIST.to_dict()` function. * Add :func:`NIST.traditional.NIST.get_all_tagid()` function. * Add :func:`NIST.traditional.NIST.to_json()` and :func:`NIST.traditional.NIST.from_json()` functions. * Add :func:`NIST.fingerprint.functions.AnnotationList.remove()` function. * Add :func:`NIST.fingerprint.functions.changeFormatImage()` function. * Add :func:`NIST.fingerprint.NISTf.get_tenprint_annotated()` function. * Add :func:`NIST.fingerprint.NISTf.get_image_annotated()` function. * Add auto funcitons (:func:`NIST.fingerprint.NISTf.export_auto()`, :func:`NIST.fingerprint.NISTf.export_auto_annotated()` and :func:`NIST.fingerprint.NISTf.crop_auto()`). * Add :func:`NIST.MDD.NIST_MDD.get_minutiae_paired_count()` function. * Add :func:`NIST.Morpho.NIST_Morpho.get_jar()` and :func:`NIST.Morpho.NIST_Morpho.get_cfv()` functions. * Add :func:`NIST.Morpho.NIST_Morpho.get_minutiae()` to process the 9.184 field. * Add support for unicode data in the :func:`~NIST.traditional.NIST.load_auto()` function. * Add support for Type-13 NIST object as reference in the :func:`NIST.fingerprint.functions.tetraptych()` function. Remove: * Remove the :func:`NIST.fingerprint.NISTf.has_field()` function. Change: * The input data of the :func:`~NIST.fingerprint.functions.lstTo012()` function have to be an AnnotationList or list object. * The :func:`~NIST.fingerprint.NISTf.checkMinutiae()` returns the checks for all IDC if multiple IDC are stored in the NIST object. * The :func:`~NIST.traditional.NIST.__str__()` function do not raise an exception if the NIST object is not initialized ("NIST object not initialized..." string instead). * Recode of the :func:`NIST.traditional.functions.tagSplitter()` function: The common tests are done inside the function, instead of outside. * Recode of the :func:`NIST.fingerprint.NISTf.set_cores()` function. * Recode of the :func:`NIST.MDD.NIST_MDD.set_pairing()` function. Patch: * :func:`NIST.fingerprint.NISTf.get_minutia_by_id()`: Error if the `format` parameter is passed to `None`. * :func:`NIST.traditional.NIST.load()` function: If the tagid is 999, the tag was not updated correctly (error possible if the length of the tag differs). * The width and the height variables were inverted int he :func:`NIST.fingerprint.NISTf.get_tenprint()` function. * Critical bug in the pairing information update :func:`NIST.MDD.NIST_MDD.set_pairing()` function. v0.21 (2016-12-25) ~~~~~~~~~~~~~~~~~~ Add: * First Sphinx documentation. * Add the :func:`NIST.traditional.NIST.get()` function. * Add support for keyword arguments for the `Annotation` object. * Add the parameter in the :func:`NIST.fingerprint.functions.AnnotationList.from_list()` class to select the type of `Annotation` stored (`Annotation`, `Minutia` or `Core`). * Add :func:`NIST.fingerprint.NISTf.migrate_Type04_to_Type14()` function. * Add :func:`NIST.MDD.NIST_MDD.migrate_Type13_to_type14()` function. * Add :func:`NIST.traditional.NIST.get_field_multi_idc()` and :func:`NIST.traditional.NIST.get_fields_multi_idc()` functions. * Add :func:`NIST.fingerprint.NISTf.get_tenprint()` function. * Add :func:`NIST.fingerprint.NISTf.get_tenprintcard()` function (European format). Change: * Migrate the :func:`NIST.MDD.NIST_MDD.get_pairing()` function to return :func:`~NIST.fingerprint.functions.AnnotationList`. * Change the location to store the default annotation format (NIST.fingerprint.functions.Annotation.defaultformat). Patch: * :func:`NIST.traditional.functions.bindump()` was returning the first byte at the end of the string v0.20 (2016-12-18) ~~~~~~~~~~~~~~~~~~ Add: * Add the :func:`~NIST.fingerprint.NISTf.init_latent()`, :func:`~NIST.fingerprint.NISTf.init_print()` and :func:`~NIST.fingerprint.NISTf.init_new()` functions in the NISTf() class. * Add options in various functions to allow func( params ) calls. * Add the :func:`NIST.traditional.NIST.merge()` function. * Add support for the Type14 in various functions. Remove: * Remove deprecated functions. Change: * The :func:`NIST.MDD.NIST_MDD.add_Type09()` overload his super() function to set the pairing information. * Change default standard value to '0300'. * Store the result of the self.get_ntype() if multiple calls have to be done in the same function (performance issues). v0.19 (2016-12-01) ~~~~~~~~~~~~~~~~~~ Add: * Add the :func:`~NIST.fingerprint.functions.Annotation`, :func:`~NIST.fingerprint.functions.Minutia` and :func:`~NIST.fingerprint.functions.Core` classes. * Add the :func:`~NIST.fingerprint.functions.AnnotationList` class. Change: * Change the format of the Minutiae and Core stored in the NIST object (from list to Minutia() and Core() object). v0.18 (2016-11-22) ~~~~~~~~~~~~~~~~~~ Add: * Add the :func:`~NIST.fingerprint.NISTf.add_type14()` function with default values. * Add the NIST_MDD class to process NIST objects with pairing information (user-defined field 9.255), and add function to annotate the pairing information (:func:`NIST.MDD.NIST_MDD.annotate()`, :func:`NIST.MDD.NIST_MDD.get_latent_annotated()` and :func:`NIST.MDD.NIST_MDD.get_print_annotated()`). * Add support for PNG format. Change: * Split the :func:`NIST.fingerprint.NISTf.crop()` function in :func:`~NIST.fingerprint.NISTf.crop_latent()` and :func:`~NIST.fingerprint.NISTf.crop_print()` functions. * Delete all empty IDC and ntypes in the clean() function. * Optimization of the :func:`~NIST.fingerprint.NISTf.get_latent_annotated()`, :func:`~NIST.fingerprint.NISTf.get_print_annotated()` and :func:`~NIST.fingerprint.NISTf.get_annotated()` functions. Delete: * Remove the minutiae_filter() function. Patch: * Monkey-patch of the x.001 field (not in agreement with the NIST standard). v0.17 (2016-09-20) ~~~~~~~~~~~~~~~~~~ Add: * Add the :func:`NIST.fingerprint.NISTf.set_cores()` function. * Add support for Type04 in the :func:`NIST.fingerprint.NISTf.set_resolution()` function. * Add the :func:`NIST.traditional.NIST.update()` function. Change: * Auto-increment of the Minutia id if not provided. * Annotate all the cores if multiple cores are stored in the NIST object. * Automatic selection of the correct diptych with the :func:`NIST.fingerprint.NISTf.get_diptych()` function. * Change the `NIST.traditional.NIST.data` variable to `MDmisc.RecursiveDefaultDict.defDict()`. * Clean the NIST object before printing. * Check the IDC field (x.002) for each ntype in the clean() function. * Patch the fields 1.011 and 1.012 according to the NIST standard. v0.16 (2016-08-17) ~~~~~~~~~~~~~~~~~~ Add: * Add the :func:`NIST.fingerprint.NISTf.crop_latent()`. * Add support for uncompressed (RAW) Type-04 images, and adapt the 'changeResolution()' function. * Add the function :func:`NIST.fingerprint.NISTf.get_image()`, with automatic determination of the main type (latent or print image). * Add the :func:`NIST.fingerprint.NISTf.export_latent()` and :func:`NIST.fingerprint.NISTf.export_print()`, and the annotated equivalent functions. * Add support to crop Type13 and Type04 images. v0.15 (2016-08-14) ~~~~~~~~~~~~~~~~~~ Add: * Add the first attempt for NIST object with M1 annotation format. * Add misc functions. * Add the identifier field for the NIST object. * Add some information in the head of the string-representation of the NIST object. * Add support for the JPEG2K format for latent images. * Add the formatter function to print formatted binary fields. Change: * Change the name of the main class in the Morpho module. * Use of the Python3 division module. Patch: * Bug-fix in some docstrings. v0.14 (2016-07-11) ~~~~~~~~~~~~~~~~~~ Add: * Add functions related to the image processing (get the latent annotated, quality map, ...). * Add functions to set values for latent and print (set_width(), set_height(), ...). * Add function to change the main class of the NIST object. * Add support for passing tuple in the set_field() function instead of a tag-string. * Add the functions get_diptych() and get_tetraptych() Change: * Change the format of the NIST object representation (non prittable character, ...). * Move deprecated functions. v0.13 (2016-07-06) ~~~~~~~~~~~~~~~~~~ Add: * Add the function get_minutiae_all() to get the minutiae from all fingers in one list of lists. * Add the function to add the case name (field 2.007) for Morpho NIST objects. Change: * Extend the NIST-fingerprint library to work with the ULWLQMetric module (added in the default installer). * Move deprecated methods in the NISTf_deprecated. Need to import this class instead of NISTf if you want to use deprecated functions with the old code (not recommended !). * Move the version of the standard in a class attribute (changeable on the fly). Patch: * Bug around : if the 1.003 field is malformed (an IDC is missing), the missing value is replaced with a 1. * Misc patches. v0.12 (2016-06-29) ~~~~~~~~~~~~~~~~~~ Add: * First version of the function to work with fingerprints (get_print() to get the PIL or WSQ image) from 4.999 WSQ encoded image. * Update the names of the imports. * Patch the get_minutiae() function (order of values). * Deprecation of the get_image() function. v0.11 (2016-06-26) ~~~~~~~~~~~~~~~~~~ Add: * Add the versioneer module to manage the version name in the setup file produced. Change: * Modification of the structure of the module: separation of the traditional module from the fingerprint functions. * Change the parameter 'minutiae' in NIST.fingerprint.NISTf.add_Type09() to optional. * Misc optimizations. v0.10 (2016-06-25) ~~~~~~~~~~~~~~~~~~ Add: * Add function returning the number of minutiae present in the NIST object (field 9.010). * Add function to add default empty records (Type-01, Type-02, Type-09 and Type-13). Change: * Update from distutils.core to setuptools * Checker for the minutiae field (all minutiae have to be on the image). * Code cleaning. v0.9 (2016-06-19) ~~~~~~~~~~~~~~~~~ Add: * Type-14, Type-10, Type-15, Type-16, Type-17, Type-18, Type-19, Type-20, Type-21, Type-98 and Type-99 parser Change: * Change in the structure of the package, and addition of the __init__ file to load the NIST package * Rewriting of the doctest.py module. * get_fields() and set_fields() to get and set multiple fields at once * Documentation of all fields (name and abbreviation) v0.8 (2016-06-18) ~~~~~~~~~~~~~~~~~ Add: * Function to delete a ntype, idc or field * Type-04 dumper Change: * Updater for the File Content field (1.003) based on the content of the NIST object * Field 4.005 checker (conformation to the standard) Patch: * Patch the type for the Type-04 data * Bug fix for the unsupported Type (allowing to skip the record) * Bug fix for the data in 999 tagid * Bug fix for the order of the excepted ntype v0.7 (2016-06-17) ~~~~~~~~~~~~~~~~~ Add: * Type-04 parser * get_caseName, get_center * 'Grayscale Compression Algorithm' field decoder * Get and set the latent friction ridge image (Type-13) in PIL and RAW format * Functions for image format transform (PIL <-> RAW) Change: * Warning for unsupported Type v0.6 (2016-06-17) ~~~~~~~~~~~~~~~~~ Add: * Parser between the 9.012 field and the minutiae table * Function to return the minutiae table v0.5 (2016-06-16) ~~~~~~~~~~~~~~~~~ Add: * Autoloader (to detect the type (NIST object or URI to file) and load it in memory * @deprecated decorator for sort deprecation (backward compatibility) * Function to check and return the IDC (if unique) of a ntype * Function to get the content of a field via the field-tag * tagSplitter function v0.4 (2016-06-16) ~~~~~~~~~~~~~~~~~ Add: * __str__ and __repr__ functions * Function to write the NIST object to disk * Function do dump the content of the NIST object in binary (ready to write to disk) * Function to check some errors possible in the content of the NIST object * Function to return the tag from a ntype and a tagid * Function to clean the self.data (deletion of empty fields) * Add some fields in the LABEL variable Change: * Set an IDC for Type-01, even if the standard says nothing about it. For simplification of the code later v0.3 (2016-06-12) ~~~~~~~~~~~~~~~~~ Add: * Function to dump the content of the NIST object in a string variable * Add the leveler function * Function to get the abbreviation and description of fields * Functions to get the list of ntype and idc's Change: * Move the Logger class to the misc library. v0.2 (2016-06-12) ~~~~~~~~~~~~~~~~~ Add: * Function to process the File Content (field 1.003) * LABEL of some fields * Debug information * Binary onscreen dumper v0.1 (2016-06-11) ~~~~~~~~~~~~~~~~~ * First version of the parser for Type-01, Type-02, Type-09 and Type-13 * Initial commit