在尝试使用 OpenCV 并尝试创建直方图(并使用 Matplotlib 绘制它)时,我遇到了一个无法解决的错误。我已经尝试将 TkAgg 指定为后端无济于事。所有这些都在一个虚拟环境中,运行 Python 3.7 和 openCV4。相关代码:import matplotlibmatplotlib.use("TkAgg")ap = argparse.ArgumentParser()ap.add_argument("-i", "--image", required=True, help = "Path to image")args = vars(ap.parse_args())image = cv2.imread(args["image"])image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)cv2.imshow("Original", image)hist = cv2.calcHist([image], [0], None, [256], [0,256])plt.figure()plt.title("Grayscale Histogram")plt.xlabel("Bins")plt.ylabel("# of Pixels")plt.plot(hist)plt.xlim([0, 256])plt.show()cv2.waitKey(0)我尝试过的事情: - 将 TkAgg 设置为 Matplotlib 的后端,未成功 - 创建新的虚拟环境并重新链接 openCV,未成功我正在跟进一本书,所以我不相信这是任何类型的语法错误,肯定是配置之一。编辑:我也尝试在 ~/.matplotlib/matplotlibrc 中指定 TkAgg 作为后端
2 回答
倚天杖
TA贡献1828条经验 获得超3个赞
我设法通过将后端更改为 pyQT5 使其在 virtualenv 中运行
安装 matplotlib 和 pyqt 并将渲染后端更新为 qt。将它或 pip 或 pip3 直接符号链接到您的 virtualenv
pip3 install matplotlib
pip3 install PyQt5
要选择后端,你可以试试这个
touch ~/.matplotlib/matplotlibrc
echo "backend: PyQt5" >> ~/.matplotlib/matplotlibrc
或者在您的源代码中始终在任何其他 matplotlib 使用之前添加它
import matplotlib
matplotlib.use("Qt5Agg")
青春有我
TA贡献1784条经验 获得超8个赞
玩了一会后,我删除了虚拟环境并使用 Python3 的内置 -m venv 命令创建了一个新环境,重新链接 OpenCV,通过 Homebrew 安装了 pyqt --with-python3,并指定了 Matplotlib.use("MacOSX" ) 在我的导入行之后。
添加回答
举报
0/150
提交
取消