Pipeline do SDK
O FingerprintExtractor executa um pipeline de 6 etapas para extrair e avaliar a qualidade de uma impressão digital a partir de uma foto.
Visão Geral
Foto (BGR)
│
▼
┌─────────────────────┐
│ 1. SkinDetector │ Detecta pele usando YCrCb + HSV
│ → skin_mask, bbox │
└──────────┬──────────┘
▼
┌─────────────────────┐
│ 2. FingerSegmenter │ Isola o dedo com GrabCut
│ → crop, mask │
└──────────┬──────────┘
▼
┌─────────────────────┐
│ 3. FingerOrienter │ Rotaciona para ponta para cima
│ → oriented crop │
└──────────┬──────────┘
▼
┌─────────────────────┐
│ 4. FingertipROI │ Extrai a região da ponta
│ → roi_gray │
└──────────┬──────────┘
▼
┌─────────────────────┐
│ 5. RidgeEnhancer │ Realça cristas papilares
│ → 500x500 canvas │
└──────────┬──────────┘
▼
┌─────────────────────┐
│ 6. QualityChecker │ Avalia qualidade (0-100)
│ → QualityReport │
└──────────┬──────────┘
▼
FingerprintResult
(imagem + quality + warnings)Uso Programático
python
from fingerprint_sdk import FingerprintExtractor, ExtractorConfig
# Configuração padrão
extractor = FingerprintExtractor()
# Ou com configuração customizada
config = ExtractorConfig(
use_grabcut=True,
min_quality_score=50.0,
canvas_size=500,
)
extractor = FingerprintExtractor(config)
# Processar de arquivo
result = extractor.extract_from_file("foto_dedo.jpg")
# Ou de numpy array (BGR)
import cv2
bgr = cv2.imread("foto_dedo.jpg")
result = extractor.extract(bgr)
# Resultado
if result.success:
print(f"Score: {result.quality.score:.1f}")
print(f"Aceitável: {result.quality.is_acceptable}")
cv2.imwrite("digital.png", result.image)
else:
print(f"Warnings: {result.warnings}")CLI
bash
# Instalação
pip install -e sdk/
# Uso
fingerprint-sdk foto_dedo.jpg output.png
# Ou como módulo
python -m fingerprint_sdk foto_dedo.jpg output.pngResultado — FingerprintResult
| Campo | Tipo | Descrição |
|---|---|---|
image | np.ndarray | Imagem 500x500 grayscale (uint8) |
quality | QualityReport | Métricas de qualidade |
warnings | list[str] | Avisos durante processamento |
success | bool | Se gerou imagem com qualidade aceitável |
Quality Report — QualityReport
| Campo | Tipo | Descrição |
|---|---|---|
sharpness | float | Variância do Laplacian |
contrast | float | Desvio padrão médio local |
ridge_clarity | float | Resposta máxima Gabor |
score | float | Score composto 0-100 |
is_acceptable | bool | score >= min_quality_score |
Etapas Detalhadas
Cada etapa é documentada em sua própria página:
- Detecção de Pele — SkinDetector
- Segmentação — FingerSegmenter
- Realce de Cristas — RidgeEnhancer
- Qualidade — QualityChecker