OpenCV在使用anaconda的Linux上无法与python正常工作。获取未实现cv2.imshow()的错误信息
这正是我得到的错误。我的操作系统是Ubuntu 16.10OpenCV在使用anaconda的Linux上无法与python正常工作。获取未实现cv2.imshow()的错误信息,python,opencv,ubuntu,anaconda,Python,Opencv,Ubuntu,Anaconda,这正是我得到的错误。我的操作系统是Ubuntu 16.10 OpenCV错误:未指定的错误(该函数未实现。使用Windows、GTK+2.x或Carbon支持重建库。如果您在Ubuntu或Debian上,请安装libgtk2.0-dev和pkg config,然后重新运行cmake或configure脚本),位于cvShowImage、file/feedu_root/build_artifacts/work/OpenCV-3.1.0/modules/highgui/src/window.cpp中
OpenCV错误:未指定的错误(该函数未实现。使用Windows、GTK+2.x或Carbon支持重建库。如果您在Ubuntu或Debian上,请安装libgtk2.0-dev和pkg config,然后重新运行cmake或configure脚本),位于cvShowImage、file/feedu_root/build_artifacts/work/OpenCV-3.1.0/modules/highgui/src/window.cpp中,第545行 回溯(最近一次呼叫最后一次): 文件“untitled.py”,第7行,在 cv2.imshow(“图像”,img) cv2.error:/feed\u root/build\u artifacts/work/opencv-3.1.0/modules/highgui/src/window.cpp:545:error:(-2)未实现该函数。使用Windows、GTK+2.x或碳纤维支架重建库。如果您在Ubuntu或Debian上,请安装libgtk2.0-dev和pkg-config,然后在函数cvShowImage中重新运行cmake或配置脚本 我的代码是:
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是与程序位于同一目录中的图像。
我首先使用Python3.5安装了anaconda,然后使用命令安装了opencv
conda install -c conda-forge opencv
正如错误所说的那样,我安装了libgtk2.0-dev,但我仍然收到相同的错误。
任何帮助都将不胜感激。我已经试着解决这个问题好几个小时了。我按照本教程()做了以下工作。这对我很有用:
cmake-dcmake\u BUILD\u TYPE=RELEASE-dcmake\u INSTALL\u PREFIX=/usr/local-D WITH\u TBB=ON-D BUILD\u NEW\u PYTHON\u SUPPORT=ON-D WITH\u V4L=ON-D INSTALL\u C\u EXAMPLES=ON-D INSTALL\u PYTHON\u EXAMPLES=ON-D BUILD=ON-D WITH\u QT=ON-D WITH\u GTK=ON-D WITH\u OPENGL=ON.
conda remove opencv
conda update conda
conda install --channel menpo opencv
或(对于OpenCV 3.1):
2.如果不想这样做,可以尝试使用matplotlib
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('img.jpg',0)
plt.imshow(img, cmap='gray')
plt.show()
3.或者尝试使用选项和_GTK=ON
,或类似的smth,自行构建库
更新-2019年6月18日 我在openCV 3.4.2的Ubuntu(18.04.1 LTS)系统上遇到这个错误,因为对cv2.imshow的方法调用失败。我用的是蟒蛇。以下两个步骤帮助我解决了以下问题:
conda remove opencv
conda install -c conda-forge opencv=4.1.0
如果您正在使用pip,您可以尝试
pip install opencv-contrib-python
如果您在任何时候使用OpenCV python pip包安装OpenCV,请注意以下注意事项,摘自
重要提示 MacOS和Linux控制盘目前有一些限制:
- 不支持视频相关功能(未使用FFmpeg编译)
- 例如
将不起作用(不使用GTK+2.x或Carbon支持编译)cv2.imshow()
还要注意,要从另一个源安装,首先必须删除opencv python包,请注意,它正在抱怨libgtk2.0-dev和pkg-config。这是解决办法。卸载现有的openCV安装 康达拆下开口CV3 在安装opencv之前安装这些软件包- 康达安装gtk2组件配置 现在从menpo安装opencv conda安装-c opencv3(Arch Linux、Anaconda with Python 3.6)对我来说,从建议的频道
menpo
或loopbio
安装并没有改变任何东西。我的解决办法是
sudo pacman-Syu pkg config
)conda remove opencv
)和conda安装-c conda forge opencv
)conda list
现在返回opencv3.3.0 py36_blas_openblas_203[blas_openblas]conda forge
并且所有使用cv2启动的窗口都工作正常。我使用pip安装了opencv python。()
1) 从conda中删除opencv包:
>> conda remove opencv
2) 在env.yml文件中添加以下内容:
...
dependencies:
- numpy
- pytest
...
- pip:
- opencv-python
从anaconda中删除opencv= 康达删除opencv 然后,使用pip重新安装opencv: pip安装opencv
这对我来说很有效。我已经处理了好几次这个问题,这就是迄今为止一直有效的方法:
conda remove opencv
conda install -c menpo opencv
pip install --upgrade pip
pip install opencv-contrib-python
我的环境是Win10,我将anaconda路径添加到环境变量的路径中,cv2.imshow运行正常
C:\Users\user\Anaconda3
C:\Users\user\Anaconda3\Scripts
然后重新启动windows,尽管这已经得到了回答,但对我来说,conda forge解决方案与黑客一起工作。 我的工作站是centos 6机器,我使用conda虚拟环境(anaconda 2)。创造环境
conda create --name test python=2.7
然后激活它
conda activate test
现在从conda forge安装opencv
conda install -c conda-forge opencv
现在在这个环境中安装matplotlib(这是hack 1)
现在让我们检查一下imshow是否有效。在终端中,激活测试环境并启动python。在口译员中,执行以下操作:
import cv2
import matplotlib.pyplot as plt # hack 2
img = cv2.imread('your_image_file',0)
cv2.imshow('image',img)
这将弹出一个显示图像的窗口。我没有进一步研究这是如何解决这个问题的
注1:您可能会在.bashrc文件中看到一些与xkb相关的错误
导出QT\u XKB\u CONFIG\u ROOT=/usr/share/X11/XKB
注2:您可能会看到一些与XDG_RUNTIME_DIR相关的错误,然后在.bashrc文件中也添加了
导出XDG_运行时_目录=.tmp/myruntime
并通过mkdir-p.tmp/myruntime定义myruntime如果您在docker内部运行,则可能会出现此错误。解决方案卸载当前版本并安装无头版本 pip安装opencv python==3.4.5.20 pip安装opencv contrib python==3.4.5.20 如果正在写入图像并显示它,则可能需要执行以下操作 apt get更新和apt get安装-y libglib2.0-0 libsm6 libxext6 libxrender1 如果您想知道如何从Docker获得显示,可以通过您主机中的X11为我的系统(Ubuntu18.04)执行以下操作。
第一: sudo apt获得更新-y 苏多美联社
conda install matplotlib
import cv2
import matplotlib.pyplot as plt # hack 2
img = cv2.imread('your_image_file',0)
cv2.imshow('image',img)
pip3 uninstall opencv-python
pip3 install opencv-python
pip uninstall opencv-python
pip install opencv-python==4.1.2.30