module ‘cv2’ has no attribute ‘quality’を解決

OpenCVが上書きされてcv2.qualityが使えなくなった

python(Anaconda仮想環境)でOpenCVを使用していて、ほかのライブラリを追加したりしたタイミングで勝手にOpenCVがバージョンアップをしたりすることがある。

私の場合は、気づかぬうちにOpenCVが上書きされてしまっていて、qualityが使えなくなっていた。

もともとどのバージョンをインストールしていたのかわからないが、結論から言うと4.1.0をインストールしたらうまく動くようになった。

cv2.quality.Brisqueがこれで無事に使えて一安心。

解決方法

まず、私の環境は

・WSL2 Ubuntu18.04

・Python 3.7

・Anaconda仮想環境で実施

とりあえず、インストールし直す手順は以下の通り。

まずは現在のライブラリを削除

conda uninstall opencv

次にバージョン指定で再インストール

conda install opencv==4.1.0 -c conda-forge

サイトによっては4.6.0で成功したとか言ってたりもするが、うまくいかなかったので、qualityが実装された直後のバージョンで試したらうまくいった。

人によってはpipで入れたopencv-pythonが邪魔をしている可能性もあるので、重複してそうなライブラリはpip uninstallで消すことをお勧めする。

Linux UbuntupythonPytorchUbunut18.04
スポンサーリンク
Toufuをフォローする
トウフ.log

コメント

  1. ゴンスケさん より:

    私の場合、opencv-contrib-python をインストールすることで使えるようになりました。

    • Toufu より:

      コメントありがとうございます。
      condaからインストールしたい場合にこの手段をとるのがなかなか怖いんですよね、pipとcondaは混ぜると危険ですので、、、(涙
      しかし、これだけはpipから入れるのもありかもしれませんね。
      ちなみに、私もこの方法は別環境で試していますが、今回はconda環境をできるだけ壊さないために記事にいたしませんでした。

      $ conda install -c michael_wild opencv-contrib
      でcondaから入れることができると書いてあるものありますが、こちらは動作しませんでした。

タイトルとURLをコピーしました