ROI选区01
This commit is contained in:
16
api/roi.py
16
api/roi.py
@@ -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": "删除成功"}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user