feat: surgery pipeline API, video inference, voice confirm, and tests
- Add FastAPI routes for surgery start/end, results, pending confirmation (WAV upload), and health checks. - Implement RTSP/Hikvision capture, consumable classification, session manager, MinIO/Baidu voice resolution, and DB persistence. - Add documentation (client API, video backends, staging checklist) and sample camera/RTSP config. - Add pytest suite (API contract, session manager, voice, repositories, pipeline persistence) and httpx dev dependency. - Replace deprecated HTTP_422_UNPROCESSABLE_ENTITY with HTTP_422_UNPROCESSABLE_CONTENT. - Fix SurgeryPipeline DB reads to use an explicit transaction with autobegin disabled. Made-with: Cursor
This commit is contained in:
13
app/services/video/frame_encode.py
Normal file
13
app/services/video/frame_encode.py
Normal file
@@ -0,0 +1,13 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import cv2
|
||||
import numpy as np
|
||||
|
||||
|
||||
def frame_to_jpeg_bytes(frame: np.ndarray, *, quality: int = 85) -> bytes:
|
||||
"""Encode BGR frame to JPEG bytes for model services expecting image bytes."""
|
||||
params = [int(cv2.IMWRITE_JPEG_QUALITY), int(quality)]
|
||||
ok, buf = cv2.imencode(".jpg", frame, params)
|
||||
if not ok or buf is None:
|
||||
raise RuntimeError("cv2.imencode failed for JPEG")
|
||||
return buf.tobytes()
|
||||
Reference in New Issue
Block a user