在Opencv

时间:2018-02-19 14:32:24

标签: python opencv image-processing

环境

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()

3 个答案:

答案 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