Files
operating-room-monitor-server/app/services/video/frame_encode.py
Kevin 04866559db 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
2026-04-21 18:33:54 +08:00

14 lines
449 B
Python

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()