在嘗試使用 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
提交
取消