A minutiae extraction fingerprint algorithm