Passe de Frigate polling à GetAiState Reolink + LPR ONNX local
- Remplace la source Frigate par l'API GetAiState de la caméra Reolink - Capture RTSP en temps réel (~20s) quand véhicule détecté, garde la meilleure frame - LPR avec YOLOv9 (détection plaque) + PaddleOCR v4 (lecture texte) via ONNX - Modèles partagés avec Frigate (volume local ./models/) - Cooldown 60s entre événements pour éviter les doublons Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
f6422b0e7e
commit
65b74ce46d
+12
-1
@@ -3,11 +3,22 @@ import numpy as np
|
||||
import colorsys
|
||||
|
||||
|
||||
def extract_dominant_color_from_frame(frame: np.ndarray, bbox: dict | None = None) -> tuple[str, str]:
|
||||
"""Returns (hex_color, color_name) from a BGR numpy frame."""
|
||||
if frame is None:
|
||||
return "#808080", "Inconnu"
|
||||
return _dominant_color(frame, bbox)
|
||||
|
||||
|
||||
def extract_dominant_color(image_path: str, bbox: dict | None = None) -> tuple[str, str]:
|
||||
"""Returns (hex_color, color_name) from image, optionally cropped to bbox."""
|
||||
"""Returns (hex_color, color_name) from image path, optionally cropped to bbox."""
|
||||
img = cv2.imread(image_path)
|
||||
if img is None:
|
||||
return "#808080", "Inconnu"
|
||||
return _dominant_color(img, bbox)
|
||||
|
||||
|
||||
def _dominant_color(img: np.ndarray, bbox: dict | None = None) -> tuple[str, str]:
|
||||
|
||||
if bbox:
|
||||
h, w = img.shape[:2]
|
||||
|
||||
Reference in New Issue
Block a user