wake-up-neo.com

OpenCV funktioniert nicht richtig mit Python unter Linux mit Anaconda. Abruffehler, dass cv2.imshow () nicht implementiert ist

Dies ist der genaue Fehler, den ich erhalte. Mein Betriebssystem ist Ubuntu 16.10.

OpenCV-Fehler: Nicht angegebener Fehler (Die Funktion ist nicht implementiert. Erstellen Sie die Bibliothek mit Windows-, GTK + 2.x- oder Carbon-Unterstützung neu.) Wenn Sie Ubuntu oder Debian verwenden, installieren Sie libgtk2.0-dev und pkg-config. cake ausführen oder Skript ausführen) in cvShowImage, Datei /feedstock_root/build_artefacts/work/opencv-3.1.0/modules/highgui/src/window.cpp, Zeile 545 Traceback (letzter Aufruf zuletzt): Datei "untitled.py", Zeile 7 in cv2.imshow ('image', img) cv2.error: /feedstock_root/build_artefacts/work/opencv-3.1.0/modules/highgui/src/window.cpp:545: Fehler: (-2) Die Funktion ist nicht implementiert. Erstellen Sie die Bibliothek mit Windows-, GTK + 2.x- oder Carbon-Unterstützung neu. Wenn Sie sich unter Ubuntu oder Debian befinden, installieren Sie libgtk2.0-dev und pkg-config, und führen Sie dann erneut cmake aus oder konfigurieren Sie das Skript in der Funktion cvShowImage .

mein Code lautet:

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 ist ein Abbild im selben Verzeichnis wie das Programm . Ich habe anaconda zuerst mit Python 3.5 installiert, dann habe ich opencv mit dem Befehl installiert 

conda install -c conda-forge opencv

Ich habe libgtk2.0-dev soeben installiert, wie der Fehler es sagte, aber ich bekomme immer noch den gleichen Fehler .. Jede Hilfe wäre sehr dankbar. Ich habe seit mehreren Stunden versucht, das Problem zu lösen.

24
Job Martinez

1. Der einfachste weg:

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

oder (für OpenCV 3.1):

conda install -c menpo opencv3

2.Und wenn Sie dies nicht möchten, können Sie versuchen, matplotlib zu verwenden.

import cv2
import matplotlib.pyplot as plt

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

plt.imshow(img, cmap='gray')
plt.show()

3. Oder versuchen Sie, Ihre eigene Bibliothek mit der Option WITH_GTK=ON oder einer solchen Methode zu erstellen.

36
Alex Glinsky

Ich habe mich ein paar Mal mit diesem Thema beschäftigen müssen, das hat bisher konsequent funktioniert:

conda remove opencv
conda install -c menpo opencv
pip install --upgrade pip
pip install opencv-contrib-python
12
Lawrence Amadi

Wenn Sie OpenCV zu einem beliebigen Zeitpunkt mit dem Paket opencv-python pip installiert haben, beachten Sie den folgenden Hinweis aus https://pypi.python.org/pypi/opencv-python

WICHTIGE NOTIZ Für MacOS- und Linux-Laufwerke gelten derzeit einige Einschränkungen:

  • videofunktion wird nicht unterstützt (nicht mit FFmpeg kompiliert)
  • zum Beispiel funktioniert cv2.imshow() nicht (nicht mit GTK + 2.x oder Carbon Support kompiliert)

Beachten Sie außerdem, dass Sie zur Installation von einer anderen Quelle das Paket opencv-python entfernen müssen

8
Nic Szer

Beachten Sie, dass es sich um libgtk2.0-dev und pkg-config beschwert. Hier ist die Lösung. Deinstallieren Sie Ihre bestehende openCV-Installation. 

conda opencv3 entfernen 

Installieren Sie diese Pakete vor der Installation von opencv - Conda install gtk2 pkg-config

Installieren Sie nun opencv von menpo Conda install -c https://conda.anaconda.org/menpo opencv3

3
user3177227

Für mich (Arch Linux, Anaconda mit Python 3.6) hat das Installieren der vorgeschlagenen Kanäle menpo oder loopbio nichts geändert. Meine Lösung (siehe verwandte Frage ) war zu

  1. installiere pkg-config (Sudo pacman -Syu pkg-config),
  2. entfernen Sie opencv aus der Umgebung (conda remove opencv) und
  3. installieren Sie opencv erneut über den Conda-Forge-Kanal (conda install -c conda-forge opencv).

conda list gibt jetzt opencv 3.3.0 py36_blas_openblas_203 [blas_openblas] conda-forge zurück und alle mit cv2 gestarteten Fenster funktionieren einwandfrei.

3
F1iX

Arbeitsmethode (getestet am 19. April 2019)

Diese Fehler treten aufgrund von conda auf. Öffnen Sie Anaconda Prompt und entfernen Sie conda opencv, falls installiert, mit dem folgenden Befehl

Wenn du conda env hast, aktiviere es zuerst conda activate myenv

conda remove opencv

Nach der Installation von opencv via pip (klicke hier um offizielle Informationen zu erhalten)

pip install opencv-contrib-python

wenn pip nicht installiert ist, benutze conda install pip Befehl.

3
Yedhrab

Ich bin diesem Tutorial gefolgt ( OpenCV GTK + 2.x error ) und habe folgendes gemacht. Es hat für mich funktioniert:

  1. installieren Sie die Pakete: libgtk2.0-dev und pkg-config
  2. cd in Ihr opencv-Verzeichnis 
  3. mkdir Release
  4. cD-Freigabe
  5. Führen Sie den Befehl aus: 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. make
  7. Sudo make installieren
2
Nitin

Ich habe pip verwendet, um opencv-python zu installieren. ( https://pypi.org/project/opencv-python/ )

1) Entfernen Sie das opencv-Paket aus der Conda:

>> conda remove opencv

2) Fügen Sie der Datei env.yml Folgendes hinzu:

...
dependencies:
  - numpy
  - pytest
  ...
  - pip:
    - opencv-python
1
Jodo

Obwohl dies bereits beantwortet ist, hat Conda-Forge für mich mit einem Hack geklappt. Meine Workstation ist eine Centos 6-Maschine, und ich verwende eine virtuelle Conda-Umgebung (Anaconda 2). Erstellen Sie eine Umgebung

conda create --name test python=2.7

und aktivieren Sie es dann

conda activate test

Installieren Sie nun opencv von conda-forge

conda install -c conda-forge opencv

Installieren Sie jetzt matplotlib in dieser Umgebung (und das ist Hack 1)

conda install matplotlib

Lassen Sie uns jetzt überprüfen, ob imshow funktioniert oder nicht. Aktivieren Sie in einem Terminal die Testumgebung und starten Sie Python. Im Interpreter tun

import cv2
import matplotlib.pyplot as plt # hack 2
img = cv2.imread('your_image_file',0)
cv2.imshow('image',img)

Daraufhin sollte ein Fenster mit einem Bild angezeigt werden. Ich habe nicht weiter erforscht, wie dies den Fall löste.

Hinweis 1: Möglicherweise wird im Zusammenhang mit xkb ein Fehler angezeigt. Fügen Sie diesen dann in Ihrer .bashrc-Datei hinzu

exportiere QT_XKB_CONFIG_ROOT =/usr/share/X11/xkb

Hinweis 2: Möglicherweise wird im Zusammenhang mit XDG_RUNTIME_DIR ein Fehler angezeigt. Fügen Sie diesen dann in Ihrer .bashrc-Datei hinzu

exportiere XDG_RUNTIME_DIR = .tmp/myruntime und definiere myruntime durch mkdir -p .tmp/myruntime

0
bJust

Wenn Sie mit Docker arbeiten, wird möglicherweise dieser Fehler angezeigt. Deinstallieren Sie die aktuelle Version und installieren Sie die kopflose Version

pip install opencv-python == 3.4.5.20

pip install opencv-contrib-python == 3.4.5.20

Wenn Sie in das Bild schreiben und es anzeigen, benötigen Sie möglicherweise Folgendes

apt-get update && apt-get install -y libglib2.0-0 libsm6 libxext6 libxrender1

Und wenn Sie sich fragen, wie Sie das Display von Docker beziehen können, ist dies über X11 in Ihrem Host möglich

0
Alex Punnen

Meine Umgebung ist Win10, und ich habe den Pfad anaconda zum PATH der Umgebungsvariablen hinzugefügt. Die cv2.imshow hat funktioniert

C:\Users\user\Anaconda3
C:\Users\user\Anaconda3\Scripts

Starten Sie dann die Fenster neu

0
user10774310

Opencv von anaconda entfernen =

conda entfernen opencv

Installieren Sie dann opencv erneut mit pip:

pip install opencv

Das funktioniert für mich.

0
vlbthambawita