ROI选区01

This commit is contained in:
2026-01-20 17:46:32 +08:00
parent f39f59be94
commit 7552cf86c3
10 changed files with 709 additions and 145 deletions

View File

@@ -14,11 +14,18 @@ from db.crud import (
)
from db.models import get_db
from inference.pipeline import get_pipeline
from inference.roi.cache_manager import get_roi_cache
from inference.roi.roi_filter import ROIFilter
router = APIRouter(prefix="/api/camera", tags=["ROI管理"])
def _invalidate_roi_cache(camera_id: int):
pipeline = get_pipeline()
pipeline.roi_filter.clear_cache(camera_id)
get_roi_cache().invalidate(camera_id)
@router.get("/{camera_id}/rois", response_model=List[dict])
def list_rois(camera_id: int, db: Session = Depends(get_db)):
roi_configs = get_all_rois(db, camera_id)
@@ -92,8 +99,7 @@ def add_roi(
return_sec=return_sec,
)
pipeline = get_pipeline()
pipeline.roi_filter.update_cache(camera_id, get_roi_points(db, camera_id))
_invalidate_roi_cache(camera_id)
return {
"id": roi.id,
@@ -137,8 +143,7 @@ def modify_roi(
if not roi:
raise HTTPException(status_code=404, detail="ROI不存在")
pipeline = get_pipeline()
pipeline.roi_filter.update_cache(camera_id, get_roi_points(db, camera_id))
_invalidate_roi_cache(camera_id)
return {
"id": roi.id,
@@ -156,8 +161,7 @@ def remove_roi(camera_id: int, roi_id: int, db: Session = Depends(get_db)):
if not delete_roi(db, roi_id):
raise HTTPException(status_code=404, detail="ROI不存在")
pipeline = get_pipeline()
pipeline.roi_filter.update_cache(camera_id, get_roi_points(db, camera_id))
_invalidate_roi_cache(camera_id)
return {"message": "删除成功"}