相关疑难解决方法(0)

Python中的多线程cv2.imshow()不起作用

我有两个摄像头(使用 OpenNI,每个摄像头有两个流,由驱动程序 API 的同一实例处理)并且希望有两个线程,每个线程独立地从每个摄像头捕获数据,即对于驱动程序 API 的一个实例,比如说cam_handler,我有两个流depthrgb每个摄像头,cam_handler.RGB1_stream比如说cam_handler.DEPTH1_stream

这是相同的代码:

import threading

def capture_and_save(cam_handle, cam_id, dir_to_write, log_writer, rgb_stream,
                     depth_stream, io):
    t = threading.currentThread()
    shot_idx = 0
    rgb_window = 'RGB' + str(cam_id)
    depth_window = 'DEPTH' + str(cam_id)
    while getattr(t, "do_run", True):
        if rgb_stream is not None:

            rgb_array = cam_handle.get_rgb(rgb_stream)
            rgb_array_disp = cv2.cvtColor(rgb_array, cv2.COLOR_BGR2RGB)
            cv2.imshow(rgb_window, rgb_array_disp)
            cam_handle.save_frame('rgb', rgb_array, shot_idx, dir_to_write + str(cam_id + 1))
            io.write_log(log_writer[cam_id], shot_idx, None)

        if depth_stream is not None:
            depth_array = cam_handle.get_depth(depth_stream)
            depth_array_disp …
Run Code Online (Sandbox Code Playgroud)

python multithreading opencv

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

multithreading ×1

opencv ×1

python ×1