當前位置: 首頁>>技術教程>>正文


OpenCV在帶有anaconda的Linux上與python無法正常工作。獲得未實現cv2.imshow()的錯誤

, , ,

問題描述

這是我得到的確切錯誤。我的操作係統是Ubuntu 16.10。

OpenCV錯誤:未指定錯誤(該功能未實現。使用Windows,GTK + 2.x或Carbon支持重建庫。如果您使用的是Ubuntu或Debian,請安裝libgtk2.0-dev和pkg-config,然後安裝re-run 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中安裝或配置腳本re-run

我的代碼是:

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

conda install -c conda-forge opencv

我安裝了libgtk2.0-dev就像錯誤說的那樣,但我仍然得到同樣的錯誤。任何幫助將非常感激。我一直試圖解決這個問題幾個小時。

最佳解決方案

1.最簡單的方法:

conda remove opencv
conda update conda
conda install --channel menpo opencv

或(對於OpenCV 3.1):

conda install -c menpo opencv3

2.如果你不想這樣做,你可以嘗試使用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自己構建庫,或者像這樣使用smth。

更新 – 2019年6月18日

我在我的Ubuntu(18.04.1 LTS)係統上遇到openCV 3.4.2的這個錯誤,因為對cv2.imshow的方法調用失敗了。我正在使用anaconda。隻需以下兩個步驟幫助我解決:

conda remove opencv
conda install -c conda-forge opencv=4.1.0

如果你正在使用pip,你可以試試

pip install opencv-contrib-python

次佳解決方案

我不得不多次處理這個問題,這是到目前為止一直有效的方法:

conda remove opencv
conda install -c menpo opencv
pip install --upgrade pip
pip install opencv-contrib-python

第三種解決方案

如果您在任何時間點使用opencv-python pip包安裝OpenCV,請注意以下注釋,取自https://pypi.python.org/pypi/opencv-python

IMPORTANT NOTE MacOS and Linux wheels have currently some limitations:

  • video related functionality is not supported (not compiled with FFmpeg)
  • for example cv2.imshow() will not work (not compiled with GTK+ 2.x or Carbon support)

另請注意,要從其他來源安裝,首先必須刪除opencv-python軟件包

第四種方案

對我來說(Arch Linux,Anaconda with Python 3.6),從建議的通道menpoloopbio進行安裝並沒有改變任何東西。我的解決方案(見related question)是

  1. 安裝pkg-config(sudo pacman -Syu pkg-config),

  2. 從環境中刪除opencv(conda remove opencv)和

  3. 來自conda-forge通道的re-install opencv(conda install -c conda-forge opencv)

conda list現在返回opencv 3.3.0 py36_blas_openblas_203 [blas_openblas] conda-forge,並且使用cv2啟動的所有窗口都正常工作。

第五種方案

工作方法(2019年4月19日測試)

這些錯誤是因為conda而發生的。使用以下命令打開Anaconda Prompt並刪除co​​nda opencv(如果已安裝)

If you have conda env, firstly activate it conda activate myenv

conda remove opencv

通過pip安裝opencv後(單擊here到官方信息)

pip install opencv-contrib-python

if pip haven’t installed, use conda install pip command.

第六種方案

我按照本教程(OpenCV GTK+2.x error)執行了以下操作。它對我有用:

  1. 安裝包:libgtk2.0-dev和pkg-config

  2. cd到你的opencv目錄

  3. mkdir發布

  4. cd發布

  5. 運行命令:cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_GTK=ON -D WITH_OPENGL=ON ..

  6. 使

  7. sudo make install

第七種方案

請注意,它正在抱怨libgtk2.0-dev和pkg-config。這是解決方案。卸載現有的openCV安裝。

conda刪除opencv3

在安裝opencv-conda install gtk2 pkg-config之前安裝這些軟件包

現在從menpo conda install -c https://conda.anaconda.org/menpo opencv3安裝opencv

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/7178.html,未經允許,請勿轉載。