Expand description
High-performance, deterministic image fingerprinting library.
Provides perceptual hashing (pHash) with crop resistance for image deduplication and similarity detection in production systems.
§Quick Start
use imgfprint::ImageFingerprinter;
let fp1 = ImageFingerprinter::fingerprint(&std::fs::read("img1.jpg")?)?;
let fp2 = ImageFingerprinter::fingerprint(&std::fs::read("img2.jpg")?)?;
let sim = ImageFingerprinter::compare(&fp1, &fp2);
println!("Similarity: {:.2}", sim.score);§High-Throughput Usage
For processing many images, use FingerprinterContext to enable
buffer reuse and avoid repeated allocations:
use imgfprint::FingerprinterContext;
let mut ctx = FingerprinterContext::new();
// Process multiple images efficiently
for path in &["img1.jpg", "img2.jpg", "img3.jpg"] {
let fp = ctx.fingerprint(&std::fs::read(path)?)?;
// Use fingerprint...
}§Performance Features
- SIMD-accelerated resize: Uses AVX2/NEON instructions for 3-4x faster resizing
- Cached DCT plans: Reuses DCT computation plans across all calls
- Buffer reuse: Context API minimizes allocations in high-throughput scenarios
- Parallel processing: Batch operations use rayon for multi-core speedup
Structs§
- Embedding
- A semantic embedding vector representing image content.
- Fingerprinter
Context - Context for high-performance fingerprinting with buffer reuse.
- Image
Fingerprint - A perceptual fingerprint containing multiple hash layers for robust comparison.
- Image
Fingerprinter - Static methods for computing and comparing image fingerprints.
- Similarity
- Similarity score between two image fingerprints.
Enums§
- ImgFprint
Error - Errors that can occur during image fingerprinting.
Traits§
- Embedding
Provider - Trait for embedding providers.
Functions§
- semantic_
similarity - Computes cosine similarity between two embeddings.