c++ - 使用 waitKey 暂停和播放视频

标签 c++ opencv

我在 OpenCV 中有一个 VideoCapture,我可以成功显示给定的视频。我现在想做的是按一个键暂停和播放(可选哪个只要能用)。我一直在阅读有关 waitKey 的内容,但我不了解这整件事 (ASCII) 以及如何绑定(bind) key 。我的理解是用来让highgui进程的,但也可以用于其他目的?

如果很难/不可能暂停视频并重新开始播放,我会很乐意在按下键时延迟一下。

非常感谢您的帮助!

最佳答案

引用OpenCV Documentation对于 cv::waitKey(delay) , 当 delay <= 0将导致函数无限等待按键事件。

这是一个示例 Python 脚本,用于显示从计算机网络摄像头捕获的帧。当q按下,循环退出。但是,如果 p按下,显示暂停,直到按下任何其他键:

import cv2
cap = cv2.VideoCapture(0) # getting video from webcam
while cap.isOpened():
    ret, img = cap.read()

    cv2.imshow("Frame",img)

    key = cv2.waitKey(1)
    if key == ord('q'):
        break
    if key == ord('p'):
        cv2.waitKey(-1) #wait until any key is pressed
cap.release()
cv2.destroyAllWindows()

关于c++ - 使用 waitKey 暂停和播放视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38064777/

相关文章:

c++ - struct() 和数组 C++ 的问题

c++ - 如何调用 DeviceIoControl 来检索它需要的内存量?

python - 你如何将蒙版生成的白色像素放入列表中

c++ - 在没有 GUI 的情况下使用 OpenCV 捕获图像(在 Linux 控制台上)

c++ - 如何避免服务器的多个线程向客户端发送数据的竞争条件? C++

c++ - postgresql libpq无缘无故插入空行

c++ - 是否允许从 CppCon 示例中进行这些编译器优化?

opencv - 使用 HSV 和 HoughCircles 通过 OpenCV 检测彩色球体

c++ - 将 numpy 的数组 reshape 转换为等效的 OpenCV

visual-studio-2010 - OpenCV链接问题