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 不同