Opencv SIFT 创建分段错误 - 以代码 139 退出

Open CV SIFT creates segmentation fault - exits with code 139

我在 MacOS X 上 运行ning python 3.6.10。我曾经能够 运行 openCV 的 SIFT 没有问题,但现在我遇到了分段错误.我用示例数据重新创建了下面的问题。有人熟悉这个错误吗?

import cv2
from skimage import data

cv2.__version__
Out[8]: '3.4.2'

image = data.astronaut()
sift = cv2.xfeatures2d.SIFT_create()
kp1, des1 = sift.detectAndCompute(image, None)
Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)

这是因为升级到 Big Sur,而以前构建的 OpenCV 版本在您以前的操作系统上。当您使用以前的 OS 的二进制文件并尝试将其与当前的 OS 一起使用时,存在一些不兼容性。解决方案是卸载并重新安装该软件包,以便它在您的系统上正确构建。不过,这将需要您升级到最新版本的 OpenCV,因此您将无法再使用 3.4.2。

在您的终端中,根据您安装的版本执行 pip uninstall opencv-pythonpip uninstall opencv-contrib-python,然后按 pip install opencv-pythonpip install opencv-contrib-python 重新安装。