A Robust Algorithm for Contactless Fingerprint Enhancement and Matching