Documentation Index Fetch the complete documentation index at: https://mintlify.com/usnistgov/NFIQ2/llms.txt
Use this file to discover all available pages before exploring further.
Unless you are actively developing code for NFIQ 2, we highly suggest you download pre-built binaries from GitHub Releases instead of attempting to compile.
Source Code
You must recursively clone the repository to retrieve git submodules. Do not use the GitHub ZIP file download.
git clone --recursive https://github.com/usnistgov/NFIQ2.git
cd NFIQ2
If you’ve already cloned the repository without the --recursive flag, initialize submodules with:
git submodule update --init --recursive
Core Dependencies
The NFIQ 2 library requires the following dependencies, included as git submodules:
OpenCV Computer vision library for image processing License: Apache 2.0Version: OpenCV 4 (latest release)
FingerJetFX OSE Minutiae extraction engine License: LGPLv3Repository: FingerJetFXOSE
digestpp C++ header-only message digest library License: Public DomainRepository: kerukuro/digestpp
Using a different version of OpenCV may result in unstable NFIQ 2 scores and is not supported. NIST relies on the latest release of OpenCV 4 for consistency and accuracy.
CLI-Specific Dependencies
If building the standalone command-line executable, additional dependencies are required:
libbiomeval
The Biometric Evaluation Framework handles fingerprint image I/O and encoding.
License: Public Domain
Additional dependencies required (see below)
NFIR
The NIST Fingerprint Image Resampler provides image resampling capabilities.
License: Public Domain
Requires: OpenCV (already required by NFIQ 2)
System Packages
The libbiomeval dependency requires system-level packages to be installed:
Ubuntu/Debian
RHEL/CentOS/Fedora
macOS
Windows
sudo apt-get install \
build-essential \
cmake \
libdb++-dev \
libhwloc-dev \
libjbig-dev \
libjpeg-dev \
libopenjp2-7-dev \
liblzma-dev \
libpng-dev \
libsqlite3-dev \
libssl-dev \
libtiff-dev \
libzstd-dev \
zlib1g-dev
sudo yum install \
cmake \
gcc-c++ \
hwloc-devel \
jbigkit-devel \
libdb-cxx-devel \
libjpeg-turbo-devel \
libpng-devel \
libsqlite3x-devel \
libtiff-devel \
libzstd-devel \
openssl-devel \
openjpeg2-devel \
xz-devel \
zlib-devel
Install dependencies via MacPorts : sudo port install \
berkeley-db \
cmake \
hwloc \
jpeg \
openjpeg \
libpng \
openssl \
sqlite3 \
tiff \
xz \
zlib \
zstd
If building a universal binary, ensure all dependencies use the +universal variant: sudo port install berkeley-db +universal
On Windows with Visual Studio, dependencies are managed via vcpkg . Install vcpkg and the required packages: vcpkg install \
berkeleydb:x64 - windows - static \
hwloc:x64 - windows - static \
libjpeg - turbo:x64 - windows - static \
openjpeg:x64 - windows - static \
libpng:x64 - windows - static \
openssl:x64 - windows - static \
sqlite3:x64 - windows - static \
tiff:x64 - windows - static \
zlib:x64 - windows - static \
zstd:x64 - windows - static
See Platform-Specific Notes for CMake integration.
Required
CMake 3.3 or later
C++11-compatible compiler:
GCC 4.8+
Clang 3.3+
MSVC 2015+
Apple Clang (Xcode 10+)
Optional
pandoc - For generating formatted documentation in packages
Next Steps
Build Library Build the NFIQ 2 library only
Build CLI Build the library and command-line interface