使用 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()
在您的代码末尾,它应该可以工作。
我正在尝试显示摄像机的连续视频流。我正在使用 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()
在您的代码末尾,它应该可以工作。