from multiprocessing import Process from collections import deque from lib import cfg 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(self.cfg["sn"]) def run(self): camera = ArenaCamera(self.cfg["sn"]) camera.create() while True: sig = self.in_q.get() if sig == CameraControl.CAPTURE: _, _, dep_img = self.camera.capture() # self.out_q.put({self.cfg["title"]: dep_img}) self.out_q.put({"title": cfg["title"], "dep_img": dep_img}) elif sig == CameraControl.DESTORY: self.camera.destroy() break