web-dev-qa-db-ja.com

Linuxでanacondaを使用している場合、OpenCVがpythonで正しく機能しません。 cv2.imshow()が実装されていないというエラーを取得する

これは私が得ている正確なエラーです。私のOSはUbuntu 16.10。です。

OpenCV Error:Unspecified error(この機能は実装されていません。Windows、GTK + 2.xまたはCarbonサポートでライブラリを再構築します。UbuntuまたはDebianを使用している場合は、libgtk2.0-devおよびpkg-configをインストールし、 cvShowImageのcmakeImageの再実行またはスクリプトの構成)、ファイル/feedstock_root/build_artefacts/work/opencv-3.1.0/modules/highgui/src/window.cpp、行545トレースバック(最後の最後の呼び出し):ファイル "untitled.py "、cv2.imshow( 'image'、img)の7行目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をインストールしてから、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をインストールしました

conda install -c conda-forge opencv

エラーが言ったようにlibgtk2.0-devをインストールしましたが、それでも同じエラーが発生します。どんな助けでも大歓迎です。私はこれを数時間解決しようとしています。

34
Job Martinez

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日

Cv2.imshowのメソッド呼び出しが失敗したため、openCV 3.4.2のUbuntu(18.04.1 LTS)システムでこのエラーが発生しました。私はanacondaを使用しています。以下の2つのステップだけで解決できました。

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

あなたがピップを使用している場合は、試すことができます

pip install opencv-contrib-python
52
Alex Glinsky

私はこの問題に数回対処しなければなりませんでしたが、これがこれまで一貫して機能していることです:

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

任意の時点でopencv-python pipパッケージを使用してOpenCVをインストールした場合、 https://pypi.python.org/pypi/opencv-python から取られた以下の注意事項に注意してください。

重要な注意MacOSとLinuxホイールには現在いくつかの制限があります:

  • ビデオ関連機能はサポートされていません(FFmpegでコンパイルされていません)
  • たとえば、cv2.imshow()は機能しません(GTK + 2.xまたはCarbonサポートでコンパイルされていません)

また、別のソースからインストールするには、まずopencv-pythonパッケージを削除する必要があることに注意してください

9
Nic Szerman

私(Arch Linux、Python 3.6を搭載したAnaconda)では、推奨チャネルmenpoまたはloopbioからインストールしても何も変わりませんでした。私の解決策( 関連する質問 を参照)は

  1. pkg-config(Sudo pacman -Syu pkg-config)をインストールします。
  2. 環境からopencvを削除(conda remove opencv)および
  3. conda-forgeチャネルからopencvを再インストールします(conda install -c conda-forge opencv

conda listopencv 3.3.0 py36_blas_openblas_203 [blas_openblas] conda-forgeを返すようになり、cv2を使用して起動されたすべてのウィンドウは正常に動作しています。

3
F1iX

作業方法(2019年4月19日にテスト済み)

これらのエラーはcondaが原因で発生します。 Anaconda Promptを開き、以下のコマンドでconda opencvがインストールされている場合は削除します

Conda envがある場合は、最初にconda activate myenvをアクティブにします

conda remove opencv

Pip経由でopencvをインストールした後( here をクリックして公式情報を表示)

pip install opencv-contrib-python

pipがインストールされていない場合は、conda install pipコマンドを使用します。

3
Yedhrab

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をインストールします。

2
user3177227

このチュートリアルに従って( OpenCV GTK + 2.xエラー )、次のことを行いました。それは私のために働いた:

  1. パッケージのインストール:libgtk2.0-devおよびpkg-config
  2. opencvディレクトリにcdします
  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. make
  7. Sudo make install
2
Nitin

Pipを使用してopencv-pythonをインストールしました。 ( https://pypi.org/project/opencv-python/

1)condaからopencvパッケージを削除します。

>> conda remove opencv

2)env.ymlファイルにこれを追加します:

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

これはすでに回答されていますが、私にとっては、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をインストールします(これはハック1です)

conda install matplotlib

Imshowの動作を確認してみましょう。ターミナルで、テスト環境をアクティブにし、Pythonを起動します。通訳で、

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

これにより、画像を表示するウィンドウがポップアップします。これがどのようにケースを解決したかについて、私はさらに研究しませんでした。

注1:xkbに関連するエラーが表示される場合があります。その後、.bashrcファイルに追加します

QT_XKB_CONFIG_ROOT =/usr/share/X11/xkbをエクスポート

注2:XDG_RUNTIME_DIRに関連するエラーが表示される場合があります。その後、.bashrcファイルにも追加します

export XDG_RUNTIME_DIR = .tmp/myruntimeそしてmyruntimeをmkdir -p .tmp/myruntimeで定義します

0
bJust

Docker内で実行している場合、このエラーが表示される場合があります。

pip install opencv-python == 3.4.5.20

pip install opencv-contrib-python == 3.4.5.20

画像に書き込んで表示する場合は、次のものが必要になる場合があります

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

Dockerから表示を取得する方法を知りたい場合は、ホストのX11を介して可能です。

0
Alex Punnen

私の環境はWin10であり、環境変数PATHにanacondaパスを追加しました。cv2.imshowは機能しました

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

その後、ウィンドウを再起動します

0
user10774310

Anaconda =からopencvを削除します

conda opencvを削除

次に、pipを使用してopencvを再インストールします。

pip install opencv

これは私のために働いています。

0
vlbthambawita