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++ - CMake 制作的 Emscripten 库无法链接

c++ - 使用 const_iterator 成员调用类的析构函数时堆损坏

c++ - 默认情况下,局部变量和全局变量是如何初始化的?

ios - CvVideoCamera - 相机不可用,Iphone 模拟器

c++ - 纹理坐标不对应于 cv::Mat 坐标

c++ - opencv图像窗口/imshow

c++ - 从 C++ 中的指针数组向 vector 添加元素

c++ - 使用可变参数模板进行隐式转换

opencv - 使用RANSAC查找正确的点匹配

python - Opencv (Python) - 脑肿瘤的异常形状 Blob 检测