如何找到错误,执行退出序列后程序崩溃(Python,opencv,Ubuntu)

时间:2015-07-08 10:53:45

标签: python opencv

我试图运行以前运行过的程序。过了一会儿,我换了操作系统,回到了Ubuntu 14.10(之前是14.04)。如果问题出在openCV或更基本的问题之内,我不太舒服。我找不到问题。也许有人有个想法。

import cv2

cap = cv2.VideoCapture(0)

while(True):
    # Capture frame-by-frame
    ret, frame = cap.read()

# Display the resulting frame
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
    break

# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()

它正在运行,我可以看到视频捕获。 但键入" q"退出该计划。打开freez的窗口在一段时间后变黑,没有其他任何事情发生。然后,我必须关闭窗口并强制它退出。 知道问题是什么以及如何解决?

2 个答案:

答案 0 :(得分:0)

某些缓冲区可能用于绘图,因此释放内存是一个坏主意。

所以你可以在调用cap.release之前尝试调用destroyAllWindows吗?

答案 1 :(得分:0)

好的,在stackoverflow上找到了解决方法。不知道为什么我之前没有找到它。 好吧,这似乎是Linux中的一个问题。

DestroyWindow does not close window on Mac using Python and OpenCV

cv2.destroyAllWindow()

添加

for i in range (1,5):
    cv2.waitKey(1)

不要问我为什么,但它有效。如果有人对此有回答。请让我知道; o) 感谢所有试图提供帮助的人。