Opencv imshow 在 macOS 11.0.1 (Big Sur) 上崩溃 python 启动器

Posted

技术标签:

【中文标题】Opencv imshow 在 macOS 11.0.1 (Big Sur) 上崩溃 python 启动器【英文标题】:Opencv imshow crashes python launcher on macOS 11.0.1 (Big Sur) 【发布时间】:2021-02-26 12:00:14 【问题描述】:

当我发现 python 启动器在尝试执行 imshow 函数时卡住时,我正在尝试从高斯过滤器运行一些旧代码。 我试过了:

使用 Matplotlib 显示图表以查看 python 启动器是否有问题,但没有,图表显示正常。

删除中间的过程只是为了让图像读取和显示,因为担心我的代码中的某些东西会破坏启动器但没有成功。

重新安装opencv-python但没有成功。

在谷歌搜索中也看到一个这样的问题,但被OP删除了。

有没有人遇到过这个问题或有任何解决方法?

示例代码:

import cv2 as cv
filename = 'chessboard.png'
img = cv.imread(filename)
cv.imshow('dst',img)
cv.waitKey(0)

操作系统:MacOS Big Sur (11.0.1)

【问题讨论】:

返回的错误是什么?? ... 没有错误返回,启动器只是不显示任何东西并且程序执行卡住了 我的经历完全一样。试过 Python 3.8 和 3.9,OpenCV 4.4 和 4.5 在 Pycharm 和 VS 代码中试过。我也在 OSX Big Sur 11.0.1 上。从您拨打imread 的那一刻起,该进程就挂起。 【参考方案1】:

我通过以下步骤解决了这个问题:

    安装 anaconda。 安装所需的库。 运行脚本,出现如下错误:

您可能正在将两组 Qt 二进制文件加载到同一个进程中。检查所有插件是否针对正确的 Qt 二进制文件进行编译。导出 DYLD_PRINT_LIBRARIES=1 并检查是否只加载了一组二进制文件。

    然后我安装了两个库:

pip install opencv-python opencv-python-headless

    重试运行脚本,图像可以显示在显示器的左上方。

【讨论】:

pip install opencv-python opencv-python-headless 为我工作听起来违反了最佳实践:(。see here - “[...]你应该只选择其中一个。不要在同一个环境中安装多个不同的包。没有插件架构:所有包都使用相同的命名空间(cv2)。[...]" 我还为Python编译器设置了文件系统的完全访问权限,我不确定是否缺少步骤【参考方案2】:

我也遇到了同样的问题。我通过安装opencv-python-headless 解决了这个问题。使用:

pip install opencv-python-headless

【讨论】:

【参考方案3】:

我自然将我的环境安装在 anaconda 中。 我不得不使用这个包 opencv-python-headless。 它现在再次运行。 还有

cv.imread(...)

方法

【讨论】:

【参考方案4】:

我在升级到 Big Sur 时也遇到了这个问题。

    卸载anaconda(每个包),然后重新安装python。

    pip install opencv-python opencv-python-headless

    这对 imshow() 确实有帮助,但我无法运行 cv.face。未找到该属性。

    This solve my problem

pip install --force-reinstall opencv-contrib-python==4.1.2.30 这次降级让我的代码再次运行。

【讨论】:

【参考方案5】:

我在安装 macOS Big Sur 后也遇到了这个问题。不仅cv2.imshow()没有回应,还有cv2.namedWindow()

cv2.imread() 但是工作正常。

解决方案是像其他人之前所说的那样安装opencv-python-headless

【讨论】:

【参考方案6】:

我和你有同样的问题。我通过安装 anaconda 并使用 anaconda 的虚拟环境(PyCharm)解决了它

【讨论】:

【参考方案7】:
import cv2 as cv
import matplotlib.pyplot as plt
filename = 'chessboard.png'
img = cv.imread(filename)
cv.imshow('dst',img)
cv.waitKey(0)

我还发现 pc 在cv.imread(...) 挂断。 什么也没发生。 所以我添加了第2行import matplotlib.pyplot ..., 图像已显示。

【讨论】:

【参考方案8】:

这似乎是一个包参考问题。我的解决方案解决了这个问题:

重新创建 conda 环境 重新安装包,包括opencv-python-headless

【讨论】:

是否安装了opencv-contrib-python,则opencv窗口无法显示。【参考方案9】:

This is the snap of the error that I face (Click this link to watch)

这是 Mac 中的常见问题,不仅在 Big Sur 中,而且在 Catalina 和其他人中也是如此。 我用一个命令解决了这个问题。

pip install opencv-python-head

And here watch the problem is solved now (Click this link to watch)

【讨论】:

以上是关于Opencv imshow 在 macOS 11.0.1 (Big Sur) 上崩溃 python 启动器的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV-2.4.8.2:imshow 与 imwrite 不同

使用imshow(OpenCV)显示图像时出现问题[重复]

带有 Python 3 的 opencv3,imshow() 不显示图像

Python OpenCV imshow 失败

opencv学习之路(11)图像几何变换

Python OpenCV - imshow 不需要从 BGR 转换为 RGB