环境
OS-铸造Linux, 使用opencv3.1,通过anaconda使用spyder
问题
下面提到的代码打开一个名称框架窗口,显示通过笔记本电脑摄像头拍摄的视频。但是当我按下“q”时,如代码中所述,它应该停止并终止窗口。但是,此处窗口停止显示捕获的任何其他帧并且不会终止。然后手动强制退出该过程。
问题是什么,为什么不终止窗口?
CODE: -
import cv2
import numpy as np
cap = cv2.VideoCapture(0)
while(True):
ret, frame = cap.read()
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
答案 0 :(得分:0)
此问题有一个漏洞:
https://github.com/opencv/opencv/issues/7343
如果没有一个好的解决方案,也存在类似的问题:
opencv videocapture hangs/freeze when camera disconnected instead of returning "False"
在此处尝试解决方案:DestroyWindow does not close window on Mac using Python and OpenCV多次调用waitKey似乎适用于许多人。您可以在没有release()的情况下尝试
答案 1 :(得分:0)
交互式python存在问题。 使用文本编辑器或ide来运行它会很好。
vsode和Pycharm可以正常工作,而我使用jupyter笔记本遇到相同的问题。
答案 2 :(得分:0)
显然这解决了问题,只需在顶部包含此行:
import pyautogui