from multiprocessing import Process from collections import deque from lib.camera.ArenaCamera import ArenaCamera from lib.cfg.cfg import CameraControl class Process3D(Process): def __init__(self, cfg, in_q: deque, out_q: deque): # 设置进程名称 super().__init__(name=f"3D-{cfg['title']}") self.cfg = cfg self.in_q = in_q self.out_q = out_q self.camera = ArenaCamera(cfg["sn"]) self.status = 0 # 仅对轨道摄像头启用 TrackDetector def run(self): while True: sig = self.in_q.get() if sig == CameraControl.CAPTURE: _, _, dep_img = self.camera.capture() self.out_q.put(dep_img) elif sig == CameraControl.DESTORY: self.camera.destroy() break