繁体   English   中英

Python OpenCV cv2.waitKey(1) 导致视频 window 冻结/无响应

[英]Python OpenCV cv2.waitKey(1) cause video window to freeze/not responding

所以我正在运行这段代码。

import cv2
frameWidth = 640
frameHeight = 480
cap = cv2.VideoCapture("Resources/test_video.mp4")
while True:
    success, img = cap.read()
    if img is None:
        break
    img = cv2.resize(img, (frameWidth, frameHeight))
    cv2.imshow("Result", img)
    keyPressed = cv2.waitKey(5)
    if keyPressed == ord('q'):
        break;

test_video.mp4 是一个简短的视频在这里它完成运行的那一刻,“结果”window 冻结并且没有响应。 即使我按“Q”,也没有任何反应。

我在 Anaconda Spyder 上运行程序。 cv2使用 pip install opencv-python安装

编辑:代码已修复,以便在按下“q”时 window 退出

尝试在最后添加这两行:

import cv2
frameWidth = 640
frameHeight = 480
cap = cv2.VideoCapture("Resources/test_video.mp4")
    while True:
        success, img = cap.read()
        if img is None:
            break
        #img = cv2.resize(img, (frameWidth, frameHeight))
        cv2.imshow("Result", img)
        if cv2.waitKey(1) and 0xFF == ord('q'):
             break
cap.release()
cv2.destroyAllWindows()

可能是它未能在脚本末尾释放资源。 请参阅此帖子以获取更多参考: cv2.videoCapture.release() 的含义是什么?

这似乎也是一个普遍的问题。 这里这里

编辑:更新以回应评论要求在“q”上退出视频。 替换行:

if cv2.waitKey(1) and 0xFF == ord('q'):
    break

和:

key = cv2.waitKey(1)
if key == ord('q'):
    break

测试和行为符合预期,使用:

  • Python 3.7
  • OpenCV 3.4.2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM