gpt4 book ai didi

python - 冲突的 OpenCV 和 Matplotlib

转载 作者:行者123 更新时间:2023-12-05 07:48:10 35 4
gpt4 key购买 nike

我一直在尝试在同一脚本中使用 opencv 显示图像并使用 pyplot 绘图,但我会收到一个错误:libc++abi.dylib: terminating with uncaught exception of type NSException
Abort trap: 6
前面还有多行神秘的错误日志,问题 here 也显示了.

重现问题的最少代码是:

import cv2
import numpy as np
import matplotlib
matplotlib.use("TkAgg")
from matplotlib import pyplot as plt

img = np.ones((50, 50), np.uint8)
cv2.imshow('image', img)
plt.figure()
plt.plot([1,2], [1,3])
plt.show()

如果我只使用 opencv 或 pyplot,则不会出现此问题。仅在同一个脚本中使用这两个库会产生问题。

我在 Mac OS X El Capitan 10.11.3 上的虚拟环境中使用 python 2.7、opencv 2.4.13 和 matplotlib 1.5.1(也尝试过 2.0.0b)。

更新:代码可以以不同的顺序执行而不会出错:

import cv2
import numpy as np
import matplotlib
matplotlib.use("TkAgg")
from matplotlib import pyplot as plt

plt.figure()
plt.plot([1,2], [1,3])
plt.show()
img = np.ones((50, 50), np.uint8)
cv2.imshow('image', img)

更新 2:在调试器 (PyCharm) 中运行代码可以无错误地执行并显示两个图形。显然,交互模式中的某些东西绕过了这个问题。

最佳答案

嗯……很老的问题了。

这个问题是因为gtk版本问题。

一般matplotlib使用gtk2,但是openCV 3.X使用gtk3。

因此,您需要将您的 openCV 版本降级到 openCV 2.x,升级您的 matplotlib 版本(使用 gtk3)或者在 matplotlib 或 openCV 3.x 之间只使用一个

关于python - 冲突的 OpenCV 和 Matplotlib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38921595/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com