即使在 Opencv 中使用 waitKey() 和 destroyAllwindows() 后窗口也会冻结

Abh*_*thy 6 python opencv image-processing

环境

操作系统-mint Linux,使用opencv3.1,通过anaconda使用spyder

问题

下面提到的代码打开一个名称框架窗口并显示通过笔记本电脑摄像头捕获的视频。但是当我按代码中提到的“q”时,它应该停止并终止该窗口。但是,这里窗口停止显示捕获的任何其他帧并且不会终止。然后我手动强制退出该进程。

有什么问题,为什么不终止窗口?

代码:-

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()
Run Code Online (Sandbox Code Playgroud)

use*_*618 4

此问题存在一个未解决的错误:

https://github.com/opencv/opencv/issues/7343

还有类似的问题没有好的解决方案:

当相机断开连接时,opencv videocapture 挂起/冻结而不是返回“False”

尝试这里的解决方案:DestroyWindow does not close window on Mac using Python and OpenCV多次调用 waitKey 似乎对很多人都有效。你也可以尝试不使用release()