为什么带有 sublime text 3 和 python 3.8 的 OpenCV 意外退出?

Why is OpenCV with sublime text 3 and python 3.8 quitting unexpectedly?

我正在尝试使用 OpenCV 来捕获我的网络摄像头的视频。每次我 运行 程序 python 意外退出,代码显示 [Finishd in 0.3s with exit code -6] 操作系统 - Catalina 10.15.3 使用 sublime text 3 Python3.8

import cv2

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

在您的代码中添加一些错误处理可能会有所帮助。例如,在

之后
cap = cv2.VideoCapture(0)

尝试这样写:

if !cap.isOpened():
    print("Error")
    exit(1)

然后,在

之后
ret, frame = cap.read()

尝试:

if !ret:
    print("Error: frame not captured")

至少这应该给你一些关于问题出在哪里的提示。

祝你好运

安德烈亚斯

问题是 Sublime 的 build systems 无法像 cv2.imshow() 那样处理 GUI window 创建。我认为这与使用 subprocess 模块执行构建系统的方式有关。例如,如果您尝试使用 Pillowmatplotlib 显示图像,您会 运行 遇到同样的问题。请注意,您可以在 Sublime 中很好地执行图像 处理,只要您不尝试显示结果即可。

最简单的解决方法是保持终端 window 打开并在保存后从命令行手动 运行 您的脚本。