Development of NFIQ 2.0

Quality Feature Definitions

Version 0.4 
NFIQ2.0: Quality Feature Definitions

2 

Table of Contents

Notation............................................................................................................................... 3

Frequency Domain Analysis................................................................................................... 3

Gabor................................................................................................................................... 5

Gabor Segment..................................................................................................................... 8

Gabor Shen......................................................................................................................... 11

Local Clarity Score............................................................................................................... 14

Mu ..................................................................................................................................... 18

Mu Mu Block....................................................................................................................... 18

Mu Mu Sigma Block............................................................................................................. 19

Mu Sigma Block................................................................................................................... 19

Orientation Certainty Level.................................................................................................. 19

Orientation Flow................................................................................................................. 21

Radial Power Spectrum........................................................................................................ 24

Ridge Valley Uniformity ....................................................................................................... 26

Sigma ................................................................................................................................. 28

Sigma Mu Block................................................................................................................... 29

References.......................................................................................................................... 29
NFIQ2.0: Quality Feature Definitions

3 

Notation

X Image width in pixels (horizontal)

Y Image height in pixels (vertical)

I(x,y) Image location where I(1,1) denotes the pixel in the upper left corner

M Number of blocks horizontally

N Number of blocks vertically

V(i, j) Image block where V(1,1) denotes the block in the upper left corner

Frequency Domain Analysis

Origin ISO/IEC TR 29794-4:2010 (ISO/IEC, 2010) – Clause 6.2.2.3

NFIQ2.0 identifier FDA_#

Short acronym

Description

The Frequency Domain Analysis algorithm operates in a block-wise manner. A signature of the ridgevalley structure is extracted and the DFT is computed to determine the frequency of the sinusoid 

following the ridge-valley structure.

Variables

Variables description and default values for 500 ppi images.

Name Default Description

I - Input image

Bh 32 Block height in pixels

Bw 32 Block width in pixels

Imask - Segmentation mask

Extracting the ridge-valley signature

T(x) = 1

2r + 1 � I(x, k)

r

k=−r

Computing the Frequency Domain Analysis score

QFDA = A(Fmax)+ 0.3(A(Fmax − 1) + A(Fmax + 1))

∑ A(F) N/2

F=1

Algorithm

1. For each block of size Bh ∗ Bw determine the dominant ridge flow orientation 

2. Rotate the block such that the dominant ridge flow is perpendicular to the x-axis

3. Crop regions of block such that no invalid regions are included in the block

4. Calculate the mean pixel intensity value T(x) for the block to extract the ridge-valley 

structure

5. Calculate the Fourier spectrum of T(x)

6. Discard the DC component of T(x) and determine the term Fmax with the highest 

magnitude A(Fmax )

7. The final Frequency Domain Analysis score is the mean of scores assigned to foreground 

blocks as defined by Imask. 
NFIQ2.0: Quality Feature Definitions

4 

Notes

The value of QFDA is undefined if Fmax = 1 or Fmax = A(end) as A(0) is not a valid index.

Workaround in that case is to set QFDA = 1. 

Processing

Input (FVC2000Db1 1_1.bmp) Input (FVC200Db1 100_1.bmp)

Input with block grid and current block marked in blue

Zoomed view of current block

Block rotated

Block cropped
NFIQ2.0: Quality Feature Definitions

5 

Block mean intensity values

Block DFT

Map of FDA quality values

Gabor

Origin Olsen, Xu, Busch, Gabor Filters as Candidate Quality Measure for NFIQ 2.0

in ICB 2012

NFIQ2.0 identifier GABOR_#

Short acronym GAB

Description

The Gabor quality feature operates on a per-pixel basis by calculating the standard deviation of the 

Gabor filter bank responses. The size of the filter bank is used to determine a number of filters 

oriented evenly across the half circle. The strength of the response at a given location corresponds 

agreement between filter orientation and frequency in the location neighborhood. For areas in the 

fingerprint image with a regular ridge-valley pattern there will be a high response from one or a few 

filter orientations. In areas containing background or unclear ridge-valley structure the Gabor 

response of all orientations will be low and constant.

Variables

Variables description and default values for 500 ppi images.

Name Default Description
NFIQ2.0: Quality Feature Definitions

6 

I - Input image

σx 6 2D Gaussian standard deviation in x-direction

σy 6 2D Gaussian standard deviation in y-direction

n 4 Size of filter bank (orientations of the Gabor wave)

f 0.1 Gabor filter frequency 

The Gabor filter

The general form of the complex 2D Gabor(Daugman, 1985) filter hCx in the spatial domain is given 

by:

hCx�x,y;f,θ,σx,σy� = exp �−1

2

�

xθ

2

σx

2 + yθ

2

σy

2�exp(j2πfxθ)�

where

xθ = x sin θ + y cosθ

yθ = x cosθ − y sin θ

and f is the frequency (cycles/pixel) of the sinusoidal plane wave along the orientation θ. The size of 

the Gaussian smoothing window is determined by σx,σy. 

The filter bank size n is used to compute the differently oriented Gabor filters composing the filter 

bank. The computation of θ given n is as follows:

θ = k − 1

nπ ,k = 1, ... ,n

Algorithm

1. Convolve input image with a 2D Gaussian kernel with σ = 1 and subtract it from the input 

image to give I̅

2. Compute the Gabor response of I̅for each orientation θ

3. Convolve the magnitude (complex modulus) of each Gabor response with a 2D Gaussian 

kernel with σ = 4

4. Compute the standard deviation of the Gabor magnitude response values at each location

yielding a map of standard deviations.

5. Sum the map of standard deviations and normalize according to number of sample points 

(typically image size) to produce the final Gabor quality score.

Processing

Real part of Gabor filter Imaginary part of Gabor filter
NFIQ2.0: Quality Feature Definitions

7 

Input (FVC2000Db1 1_1.bmp) Input (FVC200Db1 100_1.bmp)

Subtraction of image convolved with Gaussian. 

Gabor response for filtered image at orientation 0

Gabor response for filtered image at orientation 1/4
NFIQ2.0: Quality Feature Definitions

8 

Gabor response for filtered image at orientation 2/4

Gabor response for filtered image at orientation 3/4

Gaussian filtered Gabor response for filtered image at orientation 3/4

Standard deviation of Gaussian filtered responses

Gabor Segment

Origin

NFIQ2.0 identifier GS_#

Short acronym and 

alternate identifier

GSG, GaborSeg

Description

Same as Gabor with the exception that the image is initially convolved with a 2D Gaussian kernel 

with σ = 8 instead of σ = 1. Additionally a segmentation to 2 levels is applied before computing the 

final quality score. 

Variables

Variables description and default values for 500 ppi images.

Name Default Description

I - Input image

σx 6 2D Gaussian standard deviation in x-direction
NFIQ2.0: Quality Feature Definitions

9 

σy 6 2D Gaussian standard deviation in y-direction

n 4 Size of filter bank (orientations of the Gabor wave)

f 0.1 Gabor filter frequency 

Segment to two levels

Segmenting the map of standard deviations into two levels is done by first determining the 

cumulative distribution function for pixel intensity values. Next a threshold is determined such that 

the probability of a pixel belonging to background is the same as that for belonging to the 

foreground. 

Algorithm

1. Convolve input image with a 2D Gaussian kernel with σ = 8

2. Compute the Gabor response of the image for each orientation

3. Convolve the magnitude (complex modulus) of each Gabor response with a 2D Gaussian 

kernel with σ = 4

4. Compute the standard deviation of the Gabor magnitude response values at each location

yielding a map of standard deviations.

5. Segment the standard deviation map into two levels.

6. Sum the map standard deviations and normalize according to number of sample points 

(typically image size) to produce the final Gabor quality score.

Processing

Real part of Gabor filter Imaginary part of Gabor filter

Input (FVC2000Db1 1_1.bmp) Input (FVC200Db1 100_1.bmp)
NFIQ2.0: Quality Feature Definitions

10

Gabor response at orientation 0

Gabor response at orientation 1/4

Gabor response at orientation 2/4

Gabor response at orientation 3/4
NFIQ2.0: Quality Feature Definitions

11 

Standard deviation of filter responses

Segmentation of standard deviation of filter responses into two levels

Gabor Shen

Origin L. Shen, A. C. Kot, and W. M. Koo. Quality measures of fingerprint images. 

In AVBPA, 2001

NFIQ2.0 identifier GSh_#

Short acronym GSH

Description

Gabor based feature separating blocks into two classes: good and bad. Quality is the ratio between 

foreground blocks and blocks marked as good.

Variables

Variables description and default values for 500 ppi images.

Name Default Description

I - Input image

Tb 1 Threshold for foreground/background segmentation

Tq 2 Threshold for poor/good block segmentation

Algorithm

1. Compute the Gabor response of I̅for each orientation θ

2. Computed the standard deviation of the Gabor magnitude response values at each location 

yielding a map of standard deviations.

3. Divide the map of standard deviations into blocks of size b ∗ b

4. Compute the mean value of each block μi

5. Determine the set of blocks, VF, belonging to the foreground as those where μi > Tb

6. Determine the set of blocks, VP, which are of poor quality as those where (μi > Tb)⋀(μi <

Tq)
NFIQ2.0: Quality Feature Definitions

12

7. The final score QGABORSHEN is determined as the ratio between VF and VP. 

Recommendations

Suggested by Shen et. al.:

σx = σy = 4

f = 0.12

n = 8

b = 30

Tb and Tq are manually determined according to dataset.

Processing

Real part of Gabor filter Imaginary part of Gabor filter

Input (FVC2000Db1 1_1.bmp) Input (FVC200Db1 100_1.bmp)

Gabor response at orientation 0
NFIQ2.0: Quality Feature Definitions

13

Gabor response at orientation 1/4

Gabor response at orientation 2/4

Gabor response at orientation 3/4

Standard deviation of filter responses

Blockwise mean of filter responses
NFIQ2.0: Quality Feature Definitions

14

Foreground blocks

Blocks marked as poor

Local Clarity Score

Origin ISO/IEC TR 29794-4:2010 (ISO/IEC, 2010) – Clause 6.2.2.2

NFIQ2.0 identifier LCS_#

Short acronym and 

alternate identifier

LCS, Ridge-valley Structure

Description

Local Clarity Score (LCS) computes the block wise clarity of ridge and valleys by applying linear 

regression to determine a gray-level threshold, classifying pixels as ridge or valley. A ratio of

misclassified pixels is determined by comparing with the normalized ridge and valley width of that 

block.

Variables

Variables description and default values for 500 ppi images.

Name Default Description

I - Input image

Bh 32 Block height in pixels

Bw 32 Block width in pixels

Imask - Segmentation mask

Computing the average profile of a block

Given the block V2 the average profile is obtained by 

V3(x) = ∑ V2(x,y) M

y=1

M

where M is the height of the block.
NFIQ2.0: Quality Feature Definitions

15

Determining the proportion of misclassified pixels

For a block V2 there are vT pixels in the valley region and vB pixels in the valley region with intensity 

lower than a threshold DT. Similarly there are rT pixels in the ridge region and rB pixels in the ridge 

region with intensity lower than a threshold DT. α and β are expressions of these ratios. 

α = vB

vT

β = rB

rT

Determining the normalized ridge and valley width

The normalized valley width Wv and the normalized ridge width Wr are determined 

Wv = Wv

� S

125� Wmax

Wr = Wr

� S

125� Wmax

where S is the scanner resolution in dpi, Wmax is the estimated ridge or valley width for an image 

with 125 dpi resolution, and Wv and Wr are the observed valley and ridge widths. According to [] 

Wmax = 5 is reasonable for 125 dpi resolution. 

Computing the Local Clarity Score

The final quality score is computed using the average value of α and β in valid ridge and valley 

regions:

QLCS = ��1 − �

α + β

2 �� ∗ 100, �Wv

nmin < Wv < Wvnmax�⋀�Wrnmin < Wr < Wrnmax�

0, otherwise 

where Wr

nmin and Wvnmin are the minimum values for the normalized ridge and valley width, and 

Wv

nmax and Wvnmax are the maximum values for the normalized ridge and valley width. 

Algorithm

1. For each block V0 in the image determine the dominant ridge flow orientation to create an 

orientation line which is perpendicular to the ridge flow

2. Align V0 such that the orientation line is horizontal to create V1

3. From V1 extract a block V2 which is centered around the orientation line

4. Compute the average profile V3 of V2

5. Determine a threshold DT by applying linear regression on V3

6. Determine the proportion of misclassified pixels β and α in the ridge and valley regions

7. Determine the normalized ridge width and valley width Wr and Wv. 

8. Compute the final quality scoreQLCS. 

Further Comments

Particular regions inherent in a fingerprint will negatively affect QLCS. For example, ridge endings 

and bifurcations or areas with high curvature such as those commonly found in core and delta 

points.
NFIQ2.0: Quality Feature Definitions

16

Processing

Input (FVC2000Db1 1_1.bmp) Input (FVC200Db1 100_1.bmp)

Input with grid and block marked in blue

Zoomed view of block

Block rotated to align ridgelines vertically

Extracted section of the block

Projected mean gray intensity values
NFIQ2.0: Quality Feature Definitions

17

. 

Ridge-valley profile as found by mean values. Red line indicates the threshold for ridge-valley 

separation

Ridge-valley segmentation. Ridges shown in black, valleys in white. The mean intensity values are 

shown above for comparison.

Ridge areas composed into one block.

Shown in white are the parts of the fingerprint which were determined to be ridge but do not belong 

to ridge as defined by the threshold.

Valley areas composed into one block.
NFIQ2.0: Quality Feature Definitions

18

Shown in white are the parts of the fingerprint which were determined to be valley but do not 

belong to valley as defined by the threshold.

Map of local clarity scores. High intensity corresponds to high local clarity.

Mu

Origin

NFIQ2.0 identifier Mu_#

Short acronym MUQ

Description

Mu is the mean pixel intensity value in the input image.

Variables

Variables description and default values for 500 ppi images.

Name Default Description

I - Input image

Algorithm

QMU = 1

X ∗ Y� � I(x,y)

X

x=1

Y

y=1

Mu Mu Block

Origin

NFIQ2.0 identifier MMB_#

Short acronym MMB

Description

Mu Mu Block is the mean of the block wise mean pixel intensity value in the input image.

Variables

Variables description and default values for 500 ppi images.

Name Default Description

I - Input image

Bh 32 Block height in pixels

Bw 32 Block width in pixels
NFIQ2.0: Quality Feature Definitions

19

Mu Mu Sigma Block

Origin

NFIQ2.0 identifier MMSB_#

Short acronym MMSB

Description

Mu Mu Sigma Block is the mean of the block wise standard deviation pixel intensity value in the 

input image subtracted the block wise standard deviation.

Variables

Variables description and default values for 500 ppi images.

Name Default Description

I - Input image

Bh 32 Block height in pixels

Bw 32 Block width in pixels

Mu Sigma Block

Origin

NFIQ2.0 identifier MSB_#

Short acronym MSB

Description

Mu Sigma Block is the mean of the block wise standard deviation pixel intensity value in the input 

image.

Variables

Variables description and default values for 500 ppi images.

Name Default Description

I - Input image

Bh 32 Block height in pixels

Bw 32 Block width in pixels

Orientation Certainty Level

Origin ISO/IEC TR 29794-4:2010 (ISO/IEC, 2010) - Clause 6.2.2.1

NFIQ2.0 identifier OCL_#

Short acronym OCL

Description

Orientation Certainty Level is a measure of the strength of the energy concentration along the 

dominant ridge flow orientation. The feature operates in a block-wise manner.

Variables

Variables description and default values for 500 ppi images.

Name Default Description

I - Input image
NFIQ2.0: Quality Feature Definitions

20

Bh 32 Block height in pixels

Bw 32 Block width in pixels

Imask - Segmentation mask

Computing the covariance matrix

The covariance matrix C is computed as:

C = 1

N���dx

dy�[dx dy]� = �

a c

c d�

N

where dx and dy represent the intensity gradient at that pixel.

Computing the eigenvalues and the final quality score

From the covariance matrix C the eigenvalues λmin and λmax are computed as:

λmin = a + b − �(a − b)2 + 4c2

2

λmax = a + b + �(a − b)2 + 4c2

2

this yields an orientation certainty level OCL:

OCL = 1 − λmin

λmax

which is a ratio in the interval [0,1] where 1 is highest certainty level and 0 is lowest. 

Algorithm

For each block bi

1. Compute the intensity gradient by applying the 3x3 Sobel operators

2. Compute the covariance matrix

3. Compute the eigenvalues to obtain OCL

Finally compute the quality measure QOCL as:

QOCL = 1

B� bi

B

i=1

Processing

Input (FVC2000Db1 1_1.bmp) Input (FVC200Db1 100_1.bmp)
NFIQ2.0: Quality Feature Definitions

21

Input with current block marked

Zoomed view of block

Ridge orientation indicated as an ellipse. The eccentricity of the ellipse corresponds to the 

orientation certainty.

Orientation certainty level in each block. High intensity corresponds to high level of certainty.

Orientation Flow

Origin ISO/IEC TR 29794-4:2010 (ISO/IEC, 2010) - Clause 6.3.2.1

NFIQ2.0 identifier OF_#

Short acronym OF

Description

Orientation Flow is a measure of ridge flow continuity which is based on the absolute orientation

difference between a block and its neighboring blocks.

Variables

Variables description and default values for 500 ppi images.
NFIQ2.0: Quality Feature Definitions

22

Name Default Description

I - Input image

Bh 32 Block height in pixels

Bw 32 Block width in pixels

Imask - Segmentation mask

θmin 0 Minimum angle difference to consider when computing the quality 

score

Block-wise absolute orientation difference

The ridge flow is determined as a measure of the absolute difference between a block and its 

neighboring blocks. The absolute difference for block V(i, j) is:

D(i, j) = ∑ ∑ |V(i,j) − V(i − m,j − n)| 1

n=−1

1

m=−1

8

Local orientation quality score

The local orientation quality score Qloc (i,j) for the block orientation difference D(i,j) is determined 

as: 

Qloc(i,j) = �

100 , D(i,j) ≤ θmin

�1− D(i, j) − 8

90 − 8 � ∗ 100, D(i,j) > θmin

where θmin is a threshold for minimum angle difference to consider.

Global orientation quality score

With N ∗ M local orientation quality score blocks the global orientation quality score is computed as:

QOF = 1

N ∗ M�� Qloc(i,j)

M

j=1

N

i=1

Algorithm

1. Compute the absolute orientation difference D(i, j) for each blockV(i,j)

2. Compute the local orientation quality scoreQloc (i,j) for D(i,j)

3. Compute the global orientation flow quality score QOF

Processing

Input (FVC2000Db1 1_1.bmp) Input (FVC200Db1 100_1.bmp)
NFIQ2.0: Quality Feature Definitions

23

Current block marked

Zoomed view of current block

Orientation line shown perpendicular to ridges.

Block orientations

Map of differences between a block orientation and its 8-neighborhood
NFIQ2.0: Quality Feature Definitions

24

Final flow map

Radial Power Spectrum

Origin ISO/IEC TR 29794-4:2010 (ISO/IEC, 2010) - Clause 6.3.2.3

NFIQ2.0 identifier PS_#

Short acronym and 

alternate identifier

RPS, POW, Radial Power Spectrum

Description

The Radial Power Spectrum is a measure of maximal signal power in a defined frequency band of the 

global radial Fourier spectrum. Ridges can be locally approximated by means of a single sine wave, 

hence high energy concentration a narrow frequency band corresponds to consistent ridge 

structures.

Variables

Variables description and default values for 500 ppi images.

Name Default Description

rmin 25 Lower bound of frequency band

rmax 84 Upper bound of frequency band

Δr 30 Sampling step between annular bands in the frequency spectrum

θ 180 Degrees of the spectrum to consider

The 2D Discrete Fourier Transform

The 2D discrete Fourier transform f(x, y) of I(x, y) is:

f(x,y) = 1

M ∗ N � � I(x,y) exp �−j2π �m ∗ xM + n ∗ yN ��

N−1

n=0

M−1

m=0

and the magnitude of f(x,y) is:

F(x,y) = |f(x, y)|2

Magnitude of frequency bands polar coordinates

The magnitude of the annular band between r and Δr in the polar Fourier spectrum F(α, r) is 

computed as: 

J(r) = ∑ ∑ F(α, r) r+Δr

r πα=0

∑ ∑ F(α, r) rmax

rmin

π

α=0
NFIQ2.0: Quality Feature Definitions

25

where α is the angle and r is the radius.

Determine quality score from energy distribution

The quality feature QPOW is found as: 

QPOW = max

r∈[rmin,rmax]

J(r)

Algorithm

1. Compute the magnitude of the 2D-DFT F(x,y)

2. Transform F(x,y) into polar coordinates and normalize to the range of [0,1]

3. Determine the maximum energy to compute QPOW

Process

Input (FVC2000Db1 1_1.bmp) Input (FVC200Db1 100_1.bmp)

Spectrum with the frequency band of interest located between the

Polar representation of the spectrum
NFIQ2.0: Quality Feature Definitions

26

Spectrum with marked frequency of interest

Ridge Valley Uniformity

Origin ISO/IEC TR 29794-4:2010 (ISO/IEC, 2010) - Clause 6.2.2.4

NFIQ2.0 identifier RVU_#

Short acronym RVU

Description

Ridge Valley Uniformity is a measure of the consistency of the ridge and valley widths.

Variables

Variables description and default values for 500 ppi images.

Name Default Description

I - Input image

Bh 32 Block height in pixels

Bw 32 Block width in pixels

Imask - Segmentation mask

Algorithm

1. For each block V0 in the image determine the dominant ridge flow orientation to create an 

orientation line which is perpendicular to the ridge flow

2. Align V0 such that the orientation line is horizontal to create V1

3. From V1 extract a block V2 which is centered around the orientation line

4. Compute the average profile V3 of V2 to produce a vector

5. Determine a threshold DT by applying linear regression on V3

6. SegmentV3 into two levels based on the threshold DT

7. Determine the indexes in V3 where a change from background to foreground or foreground 

to background occurs. If no changes are found then return an empty ratio for that block.

8. Remove the first and last parts of V3 to remove incomplete ridge/valleys occurring at the 

border of the original block. Likewise remove the corresponding changes from the change 

index vector.

9. If there are no changes after step 8, return an empty ratio for that block

10. Calculate the ratios between the width of ridges and valleys for the block.

11. Obtain the final quality score as the standard deviation of all ratios.
NFIQ2.0: Quality Feature Definitions

27

Process

Input (FVC2000Db1 1_1.bmp) Input (FVC200Db1 100_1.bmp)

Input with block grid and current block marked

Current block

Current block with overlap

Block rotated so ridge lines are vertical
NFIQ2.0: Quality Feature Definitions

28

Cropped section of block

Projection of mean intensity

Segmentation according to thresholding. Ridges marked in black, valleys in white

Location of ridge-valley edges marked with white

Cleaned ridge-valley segmentation contains only complete ridges and valleys.

Sigma

Origin

NFIQ2.0 identifier Sigma_#

Short acronym SIG

Description

Sigma is the standard deviation of pixel intensity values in the input image.

Algorithm

QSIGMA = � 1

X ∗ Y − 1��(I(x, y) − I)2

X

x=1

Y

y=1 �

1

2

̅

where I̅is the mean pixel intensity of I. 

Variables

Variables description and default values for 500 ppi images.

Name Default Description

I - Input image
NFIQ2.0: Quality Feature Definitions

29

Sigma Mu Block

Origin

NFIQ2.0 identifier SMB_#

Short acronym SMB

Description

Sigma Mu Block is the standard deviation of the block wise mean pixel intensity value in the input 

image.

Variables

Variables description and default values for 500 ppi images.

Name Default Description

I - Input image

Bh 32 Block height in pixels

Bw 32 Block width in pixels

References

Daugman John Uncertainty relation for resolution in space,spatial frequency, and orientation 

optimed by two-dimensional visual cortical filters [Journal]. - [s.l.] : J. Opt. Soc. Am. A, 1985. - Vol. 2.

ISO/IEC 29794-4 TR Information technology - Biometric sample quality - Part 4: Finger image data 

[Report]. - 2010.