minutiae detected by MINDTCT to determine if two fingerprints are from the same person, same finger [14]. It can analyze fingers two at a time or run in a batch mode comparing a single finger (probe) against a large database of fingerprints (gallery).The program BOZORTH3 computes match scores from fingerprint minutiae files. The files are expected to be in xyt-format, a simple text file format that is produced by the minutiae detector program MINDTCT, which is also part of the NBIS distribution.Considering the specific file "db1/101_1.xyt" we generated previously, as well as all others ".xyt" in that same directory, we could invoke BOZORTH3 in order to compare the fingerprint "101_1.tif" with the rest images in the same database (i.e., residing in "db1/" directory):bozorth3 -m1 -A outfmt=spg -T 20 -p db1/101_1.xyt db1/*.xyt271 db1/101_1.xyt db1/101_1.xyt59 db1/101_1.xyt db1/101_2.xyt25 db1/101_1.xyt db1/101_4.xytThe output states that there are 3 possible fingerprint candidates that match the "101_1.tif" probe, where the first value is the number representing the matching score. As a good practice, we set a match score threshold (note the "-T 20" argument) in the matcher. Once the threshold is specified, only match scores meeting or exceeding that value are printed.The first line represents exactly the same image as the probe ("101_1"). That explains the highest score value. The remaining two are fingerprints that the matching algorithm identified as possibly the same, "101_2" having higher probability than "101_4".But as we know by the FVC2004 database, there are 8 versions for each fingerprint, which means in an ideal AFIS system all them should be listed:find db1/101_?.xytdb1/101_1.xytdb1/101_2.xytdb1/101_3.xytdb1/101_4.xytdb1/101_5.xytdb1/101_6.xytdb1/101_7.xytdb1/101_8.xytWell, that is an issue concerning "Error Rates" in security systems, particularly "False Acceptance Rate (FAR)" and "False Rejection Rate (FRR)", but that is a whole new subject I'll keep for another article. :DAt least other fingerprint images in the same dataset (e.g., "102_*", "103_*", etc) didn't have high scores by the matcher algorithm.In other words, in this case of NBIS algorithms against FVC2004 database, we are facing a high FRR value (i.e., many genuine fingerprints don't match) and a low FAR value (i.e., it is difficult to a fake fingerprint match).If we would want to compute the matches of our entire dataset, considering each fingerprint as a probe at a time, we could execute the following Shell Script:for i in `seq 1 4`do for a in db$i/*.xyt do echo "[$a]" bozorth3 -m1 -A outfmt=spg -T 20 -p $a db$i/*.xyt echo donedoneFor instance, note how good is the matching score for the fingerprint named "104_4.tif" in the "db3" dataset:[db3/104_4.xyt]80 db3/104_4.xyt db3/104_1.xyt59 db3/104_4.xyt db3/104_2.xyt136 db3/104_4.xyt db3/104_3.xyt948 db3/104_4.xyt db3/104_4.xyt113 db3/104_4.xyt db3/104_5.xyt72 db3/104_4.xyt db3/104_7.xyt61 db3/104_4.xyt db3/104_8.xyt4. Summing up4.1. A complete Shell ScriptIn order to reproduce all the steps explained before, I suggest you to create a single Shell Script, named "02-run-nbis.sh", inside the "images/" directory, with the following content:#!/bin/bashif ! which bozorth3then echo "NBIS programs not in shell path" exit 1fiecho "Converting TIFF images to WSQ format..."find db1/ -name "*.tif" -exec cwsq .75 wsq {} -r 640,480,8 \;find db2/ -name "*.tif" -exec cwsq .75 wsq {} -r 328,364,8 \;find db3/ -name "*.tif" -exec cwsq .75 wsq {}