Не создавать потоки, namedWindow
, imshow
и destroyWindow
не должны вызываться в потоке.
def preview(camera_ids):
cameras = {}
for name, id in camera_ids.items():
cv2.namedWindow(name)
cameras[name] = cv2.VideoCapture(id)
while True:
for name, cam in cameras.items():
ok, frame = cam.read()
if ok: cv2.imshow(name, frame)
key = cv2.waitKey(20)
if key == 27:
break
for name in cameras:
cv2.destroyWindow(name)
preview({"Camera 1": 1, "Camera 2": 2})