



Make it legible first
Normalize the raw image, estimate the orientation field, sharpen the ridges with Gabor filters, and binarize.
- 1Normalize
- 2Orientation field
- 3Gabor enhancement
- 4Binarize
Thinned to a single line
The ridges are thinned to 1 pixel wide. Short spurs are pruned so they don't become false minutiae.


Where ridges end and fork
Crossing number: count the eight neighbours of each skeleton pixel. 1 transition = ending, 3 = bifurcation.
Ending
CN = 1
Bifurcation
CN = 3

The heart of the pattern
Poincaré index: sum the orientation around a loop — +180° is a loop (core), −180° a delta.

Do they line up?
Two prints are aligned with RANSAC, orientation-consistent minutiae are paired, and a score is computed — shown here in the real analysis cockpit.


Score 55% — “Likely identical”. A similarity value, not a court-admissible identification.
The full analysis cockpit
Load two prints, filter markers by type, zoom and pan — and compare live.

A score — not an identification
FingerMatch produces a similarity score as a learning and analysis tool.
- Detects minutiae and singular points with real CV
- Aligns two prints and scores their similarity
- Not a court-admissible AFIS, not an identification
- Does not replace forensic examination
classical
Classical pipeline — all four marker types
minutiaenet (ONNX)
Experimental: localizes with a net, classifies classically
The model localizes; the classical logic classifies.