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
で消すことをお勧めする。
コメント
私の場合、opencv-contrib-python をインストールすることで使えるようになりました。
コメントありがとうございます。
condaからインストールしたい場合にこの手段をとるのがなかなか怖いんですよね、pipとcondaは混ぜると危険ですので、、、(涙
しかし、これだけはpipから入れるのもありかもしれませんね。
ちなみに、私もこの方法は別環境で試していますが、今回はconda環境をできるだけ壊さないために記事にいたしませんでした。
$ conda install -c michael_wild opencv-contrib
でcondaから入れることができると書いてあるものありますが、こちらは動作しませんでした。