Mindtct parses a standard compliant ANSI/NIST-ITL 1-2000 file searching for the first occurrence of a grayscale fingerprint image record. If found, the fingerprint image is processed and minutiae are automatically detected. Minutiae results are formatted and stored using the NIST fields 5-12 in a Type-9 record. Upon successful completion, the input ANSI/NIST record sequence is augmented with two new records, the Type-9 minutiae record and a tagged field image record containing the results of image binarization. This augmented record sequence is then written to the specified output filename.
Mindtct also generates the following text files in the current working directory: dmap.txt, hcmap.txt, lcmap.txt, lfmap.txt, qmap.txt, and min.txt. These files are described below.
The Direction Map represents the direction of ridge flow within the fingerprint image. The map contains a grid of integer directions, where each cell in the grid represents an 8x8 pixel neighborhood in the image. Ridge flow angles are quantized into 16 integer bi-directional units equally spaced on a semicircle. Starting with vertical direction 0, direction units increase clockwise and represent incremental jumps of 11.25 degrees, stopping at direction 15 which is 11.25 degrees shy of vertical. Using this scheme, direction 8 is horizontal. A value of -1 in this map represents a neighborhood where no valid ridge flow was determined.
The High-Curvature Map represents areas in the image having high-curvature ridge flow. This is especially true of core and delta regions in the fingerprint image, but high-curvature is not limited to just these cases. This is a bi-level map with same dimension as the Direction Map. Cell values of 1 represent 8x8 pixel neighborhoods in the fingerprint image that are located within a high-curvature region, otherwise cell values are set to 0.
The Low-Contrast Map represents areas in the image having low-contrast. The regions of low contrast most commonly represent the background in the fingerprint image. This is a bi-level map with same dimension as the Direction Map. Cell values of 1 represent 8x8 pixel neighborhoods in the fingerprint image that are located within a low-contrast region, otherwise cell values are set to 0.
The Low-Flow Map represents areas in the image having non-determinable ridge flow. Ridge flow is determined using a set of discrete cosine wave forms computed for a predetermined range of frequencies. These wave forms are applied at 16 incremental orientations. At times none of the wave forms at none of the orientations resonate sufficiently high within the region in the image to satisfactorily determine a dominant directional frequency. This is a bi-level map with same dimension as the Direction Map. Cell values of 1 represent 8x8 pixel neighborhoods in the fingerprint image that are located within a region where a dominant directional frequency could not be determined, otherwise cell values are set to 0. The Direction Map also records cells with non-determinable ridge flow. The difference is that the Low-Flow Map records all cells with non-determinable ridge flow, while the Direction Map records only those that remain non-determinable after extensive interpolation and smoothing of neighboring ridge flow directions.
The Quality Map represents regions in the image having varying levels of quality. The maps above are combined heuristically to form 5 discrete levels of quality. This map has the same dimension as the Direction Map, with each value in the map representing an 8x8 pixel neighborhood in the fingerprint image. A cell value of 4 represents highest quality, while a cell value of 0 represent lowest possible quality.
This text file reports the minutiae detection results. The majority of the results listed in this text file are also encoded and stored in a Type-9 record in the output ANSI/NIST file. The first non-empty line in the text file lists the number of minutiae that were detected in the fingerprint image. Following this, the attributes associated with each detected minutia are recorded, one line of text per minutia. Each minutia line has the same format. Fields are separated by a ':', subfields are separated by a ';', and items within subfields are separated by a ','. A minutia line may be represented as:
MN : MX, MY : DIR : REL : TYP : FTYP : FN : NX1, NY1; RC1 : ...
where:
is the integer identifier of the detected minutia.
is the x-pixel coordinate of the detected minutia.
is the y-pixel coordinate of the detected minutia.
is the direction of the detected minutia. Minutia direction is represented similar to ridge flow direction, only minutia direction is uni-directional starting at vertical pointing up with unit 0 and increasing clockwise in increments of 11.25 degrees completing a full circle. Using this scheme, the angle of a detected minutia is quantized into the range 0 to 31 with 8 representing horizontal to the right, 16 representing vertical pointing down, and 24 representing horizontal to the left.
is the reliability measure assigned to the detected minutia. This measure is computed by looking up the quality level associated with the position of the minutia from the Quality Map. The quality level is then heuristically combined with simple neighborhood pixel statistics surrounding the minutia point. The results is a floating point value in the range 0.0 to 1.0, with 0.0 representing lowest minutia quality and 1.0 representing highest minutia quality.
is the type of the detected minutia.
bifurcation = "BIF" ridge ending = "RIG"
is the type of feature detected.
appearing = "APP" disappearing = "DIS" (This attribute is primarily useful for purposes internal to the minutia detection algorithm.)
is the integer identifier of the type of feature detected. (This attribute is primarily useful for purposes internal to the minutia detection algorithm.)
is the x-pixel coordinate of the first neighboring minutia.
is the y-pixel coordinate of the first neighboring minutia.
is the ridge count calculated between the detected minutia and its first neighbor.
for each additional neighbor ridge count computed, the pixel coordinate of the neighbor and the ridge count to that neighbor are reported.