[英]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
测试和行为符合预期,使用:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.