如何防止 python 中 opencv 的分段错误

Jon*_*Jon 2 python opencv python-3.x

我正在尝试使用 opencv 和 python 3.9.7 在 ArchLinux 上使用 gnome 作为桌面环境重新生成一个简单的代码。我使用命令安装了 opencv pip3 install --upgrade opencv-python。我当前的代码如下所示。

import cv2
cap = cv2.VideoCapture(0)
cap.set(3, 640)
cap.set(4, 480)

while True:
    success, img = cap.read()
    cv2.imshow("Video", img)  # This is where the code fails
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
Run Code Online (Sandbox Code Playgroud)

如果我删除命令下面的所有内容,代码就会运行imshow(),但是当我添加该行时,执行会失败并出现以下错误

Segmentation fault (core dumped)

看来很多人都遇到了这个问题,但我还没有看到解决方案。有谁知道我该如何解决这个问题?

Jon*_*Jon 7

经过一番挖掘,我发现对于 4.5.3.56 以上的 opencv-python 版本,MacOS 和 Linux 用户会遇到这个问题。我降级了 opencv-python 库 20 4.5.3.56,现在一切正常。