Skip to content

tsogtb/miniproject1

Repository files navigation

Fingerprint Minutiae Extraction & Matching

A Java-based image processing library for biometric fingerprint analysis. This project implements the full pipeline from raw boolean images to feature-based matching without external CV libraries.

🛠 Features

  • Iterative Thinning: Implements a two-step morphological thinning algorithm to extract the 1-pixel wide skeleton of ridges.
  • Minutiae Extraction: Detects ridge endings and bifurcations using transition counts (Crossing Number algorithm).
  • Geometric Analysis: - Orientation Estimation: Computes ridge flow angles using linear regression over local pixel clusters.
    • Spatial Transformations: Supports rotation and translation matrices to align disparate fingerprint captures.
  • Feature Matching: A threshold-based matching engine that compares minutiae sets across different coordinate systems.

📐 Mathematical Approach

The project relies on several key mathematical concepts:

  1. Linear Regression: Used in computeSlope to determine the best-fit line for ridge orientation.
  2. Euclidean Distance: For calculating proximity between feature points.
  3. Zhang-Suen Morphological Steps: To preserve topological properties during image thinning.

🚀 Usage

The core logic is contained within Fingerprint.java.

// Extract features from a thinned image
List<int[]> minutiae = Fingerprint.extract(skeletonImage);

// Compare two sets of minutiae
boolean isMatch = Fingerprint.match(minutiaeSetA, minutiaeSetB);

About

Fingerprint recognition

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages