AnacondaにOpenCV2をインストールする
以前 OpenCV2 を導入するのに公式の方法ではうまくいかず,意外と右往左往してしまった話です.
環境
Windows で Anaconda3 を使っていますが,仮想環境の Python2 系に合わせて OpenCV2 を導入します.
OpenCV3 は conda install でいけますが,OpenCV2 は opencv.org からダウンロードしなければなりません.
公式のインストール方法
- OpenCV for Windows でパッケージをダウンロードし,好きな位置で展開する
- Downloads\opencv\build\python\2.7\x64 (32bit の場合は x86) を開き,中の cv2.pyd をコピー (Download フォルダ内で展開したときの話)
- Anaconda3\Lib\site-packages の中に貼りつける (Anaconda のフォルダの場所は個人の環境によりけり)
これが,公式上の案内です.
読み込み時のエラー
しかし,これで実行するとエラーになります.
ImportError: No module named 'cv2'
仮想環境ではパッケージが適用できていません.
また,仮想環境上でない場合は次のようなエラーが出ます.
ImportError: DLL load failed: 指定されたモジュールが見つかりません.
これは Anaconda3 はデフォルトで Python3 系なので,OpenCV 2.4 が適用できないのかなと.
仮想環境上で利用する
Anaconda を利用した仮想環境では,(当然)仮想環境ごとにパッケージを導入したりしなかったり選べます.
ということは,仮想環境ごとに分けて保存しているはずで,Anaconda3\Lib\site-packages の中に適用したところで,各仮想環境上では利用できなくない?
ということに最初気づかなかったのですが...
先ほどと同様に手動でパッケージを導入するので,最初に仮想環境を用意します.
terminal
$ conda create -n cv python=2.7.12
今回は,余計なパッケージは何も入っていない,まっさらな状態の環境でやってみます.
仮想環境の設定は Anaconda3\envs 内に保存されています.
仮想環境においてもディレクトリの構造は同じようなので,Anaconda3\envs\cv\Lib\site-packages の下に cv2.pyd をコピーすれば OK !
Numpy を忘れずに
これで OpenCV をインポートしようとすると,またエラーが出ます.
ImportError: numpy.core.multiarray failed to import
OpenCV は Numpy 必須です.
terminal
$ pip install numpy
気を取り直して,仮想環境にパッケージを追加して,再び実行します.
terminal
>>> import cv2
>>> print cv2.__version__
2.4.13
これで万事解決!