OpenCV 在 Linux 上的 python 与 anaconda 无法正常工作.收到未实现 cv2.imshow() 的错误
问题描述
这是我得到的确切错误.我的操作系统是 Ubuntu 16.10.
This is the exact error that I am getting. My OS is Ubuntu 16.10.
OpenCV 错误:未指定错误(该功能未实现.使用 Windows、GTK+ 2.x 或 Carbon 支持重建库.如果您在 Ubuntu 或 Debian 上,请安装 libgtk2.0-dev 和 pkg-config,然后重新运行 cmake 或配置脚本)在 cvShowImage,文件/feedstock_root/build_artefacts/work/opencv-3.1.0/modules/highgui/src/window.cpp,第 545 行回溯(最近一次通话最后):文件untitled.py",第 7 行,在cv2.imshow('图片',img)cv2.error:/feedstock_root/build_artefacts/work/opencv-3.1.0/modules/highgui/src/window.cpp:545: error: (-2) 功能没有实现.使用 Windows、GTK+ 2.x 或 Carbon 支持重建库.如果你在 Ubuntu 或 Debian 上,安装 libgtk2.0-dev 和 pkg-config,然后重新运行 cmake 或在函数 cvShowImage 中配置脚本
我的代码是:
import numpy as np
import cv2
# Load an color image in grayscale
img = cv2.imread('0002.png',0)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
0002.png 是与程序位于同一目录中的图像.我首先用python 3.5安装了anaconda,然后我使用命令安装了opencv
0002.png is an image in the same directory as the program. I first installed anaconda with python 3.5, then I installed opencv by using the command
conda install -c conda-forge opencv
我安装了 libgtk2.0-dev,就像错误所说的那样,但我仍然得到同样的错误.任何帮助将非常感激.我已经尝试解决这个问题几个小时了.
I installed libgtk2.0-dev just as the error said to but I still get the same error. Any help would be much appreciated. I've been trying to solve this for several hours.
解决方案
1.最简单的方法:
conda remove opencv
conda update conda
conda install --channel menpo opencv
或(对于 OpenCV 3.1):
or (for OpenCV 3.1) :
conda install -c menpo opencv3
2.如果你不想这样做,你可以尝试使用matplotlib.
2.And if u don't want to do this, you can try to use matplotlib .
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('img.jpg',0)
plt.imshow(img, cmap='gray')
plt.show()
3.或者尝试使用选项 WITH_GTK=ON
自己构建库,或者类似的东西.
3.Or try to build library by your own with option WITH_GTK=ON
, or smth like that.
更新 - 2019 年 6 月 18 日
Update - 18th Jun 2019
我的 Ubuntu(18.04.1 LTS) 系统上的 openCV 3.4.2 出现此错误,因为对 cv2.imshow 的方法调用失败.我正在使用蟒蛇.仅以下 2 个步骤帮助我解决了问题:
I got this error on my Ubuntu(18.04.1 LTS) system for openCV 3.4.2, as the method call to cv2.imshow was failing. I am using anaconda. Just the below 2 steps helped me resolve:
conda remove opencv
conda install -c conda-forge opencv=4.1.0
如果你用的是pip,可以试试
If you are using pip, you can try
pip install opencv-contrib-python
相关文章