OpenCV在带有anaconda的Linux上与python无法正常工作.获得未实现cv2.imshow()的错误

Job*_*nez 38 python ubuntu opencv anaconda

这是我得到的确切错误.我的操作系统是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行Traceback(最近一次调用最后一次):文件"untitled.py",第7行,在cv2.imshow('image',img)cv2.error:/feedstock_root/build_artefacts/work/opencv-3.1.0/modules/highgui/src/window.cpp:545:错误:( - 2)该函数是未实现.使用Windows,GTK + 2.x或Carbon支持重建库.如果您使用的是Ubuntu或Debian,请安装libgtk2.0-dev和pkg-config,然后在函数cvShowImage中重新运行cmake或configure脚本

我的代码是:

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()
Run Code Online (Sandbox Code Playgroud)

0002.png是与程序在同一目录中的图像.我首先使用python 3.5安装了anaconda,然后使用该命令安装了opencv

conda install -c conda-forge opencv
Run Code Online (Sandbox Code Playgroud)

我安装了libgtk2.0-dev就像错误说的那样,但我仍然得到同样的错误.任何帮助将非常感激.我一直试图解决这个问题几个小时.

Ale*_*sky 56

1.最简单的方法:

conda remove opencv
conda update conda
conda install --channel menpo opencv
Run Code Online (Sandbox Code Playgroud)

或(对于OpenCV 3.1):

conda install -c menpo opencv3
Run Code Online (Sandbox Code Playgroud)

2.如果你不想这样做,你可以尝试使用matplotlib.

import cv2
import matplotlib.pyplot as plt

img = cv2.imread('img.jpg',0)

plt.imshow(img, cmap='gray')
plt.show()
Run Code Online (Sandbox Code Playgroud)

3.或者尝试用你自己的选项来构建库WITH_GTK=ON,或者像那样smth.

  • **UPDATE**:`opencv-python 3.4.0.12`支持视频相关功能,所以我们可以正常使用`pip install opencv-python`. (3认同)
  • 今天是 2020 年 1 月 24 日。这不起作用。但是,下面@Yedhrab 建议的解决方案确实有效。 (3认同)
  • 或者你可以使用`conda install --channel loopbio --channel conda-forge --channel pkgw-forge gtk2 ffmpeg ffmpeg-feature gtk2-feature opencv`.(详情[这里](https://github.com/conda-forge/opencv-feedstock/issues/43).) (2认同)
  • 对于将来的读者:只有这个对我有用:`conda install -c menpo opencv3`。第一个不能解决问题(`conda install --channel menpo opencv`) (2认同)

lor*_*nzo 23

我不得不多次处理这个问题,这是到目前为止一直有效的方法:

conda remove opencv
conda install -c menpo opencv
pip install --upgrade pip
pip install opencv-contrib-python
Run Code Online (Sandbox Code Playgroud)


Yed*_*rab 12

工作方法(?2019年4月19日测试)

  • 这些错误是由于 conda 发生的。
  • 打开Anaconda Prompt并删除 conda opencv(如果已安装)
  • ? conda remove opencv

如果你有 conda env,首先激活它 conda activate <your_env_name>

  • ? 通过pip安装opencv后(点击此处查看官方信息)
  • ? pip install opencv-contrib-python

如果 pip 尚未安装,请使用conda install pip命令。

  • 我喜欢所有的表情符号! (2认同)

Nic*_*man 9

如果您在任何时间点使用opencv-python pip包安装OpenCV,请注意以下注释,取自https://pypi.python.org/pypi/opencv-python

重要说明 MacOS和Linux车轮目前存在一些限制:

  • 不支持视频相关功能(不使用FFmpeg编译)
  • 例如cv2.imshow()不起作用(不使用GTK + 2.x或Carbon支持编译)

另请注意,要从其他源安装,首先必须删除opencv-python包