使用 pymba opencv cv2 imshow() 获取帧

aquire frames with pymba open-cv cv2 imshow()

我正在尝试显示摄像机的连续视频流。我正在使用 pymba SDK。包括一个如何显示视频流的例子。 运行ning "opencv_acquire_streaming_images.py" 正是我需要做的。现在的问题是,当你第一次 运行 它时,它很好。如果你 运行 第二次没有重新启动内核,它就不会。代码 运行s,没有错误,但没有流式传输图像。 我发现这是 open-cvs imshow 函数的一个问题,它需要 waitKey 函数。我还没有找到可行的解决方案。如果有任何帮助,我将不胜感激。

示例代码为:

from time import sleep
from pymba import Vimba
from examples.camera._display_frame import display_frame

if __name__ == '__main__':

    with Vimba() as vimba:
        camera = vimba.camera(0)
        camera.open()

        # arm the camera and provide a function to be called upon frame ready
        camera.arm('Continuous', display_frame)
        camera.start_frame_acquisition()

        # stream images for a while...
        sleep(5)

        # stop frame acquisition
        # start_frame_acquisition can simply be called again if the camera is still armed
        camera.stop_frame_acquisition()
        camera.disarm()

        camera.close()

在中断处理程序 'display_frame' 中,cv window 打开但从未关闭。所以你只需要放一个

cv2.destroyAllWindows()

在您的代码末尾,它应该可以工作。