意味悲鳴

PythonとかUnityとか.技術ブログでしたが,研究ブログにシフトしました.

VisualStudio2013のPython3.4でOpenCVを使う

こんばんは。

一晩かかっていましたがなんとかうまく行ったので手順を書いていきます。分かってしまえば少しも難しくなかっただけにかなり虚しいです。

まずは私の環境を。

Windows7 64bit Home Premium
Visual Studio 2013 Professional
Anaconda3.2.2(Python3.4)


Install OpenCV-Python in Windows — OpenCV-Python Tutorials 1 documentation

このチュートリアルによると2系でOpenCVを使う時にはNumPyとMatplotlibが必要なようですので、素のPython3.4を使っている場合は別途インストールする必要があると思われます。WindowsPythonのライブラリをインストールするのは結構面倒なので、今あるPythonをアンインスコしてAnacondaぶっこんじゃった方が速いかもしれません。ほかにもSciPyとかIPythonとか入ってますし。



1,GitHubからソースコードをダウンロードする。

github.com

まずはGitHubからOpenCVソースコードをダウンロードして任意のフォルダに展開します。ダウンロードは左下のDownload ZIPってやつをクリックしてください。

また、以降の作業では以下のディレクトリに展開、ビルドすることを前提に話を進めていきます。


ソース:D:\OpenCV\source
ビルド:D:\OpenCV\build


一応書いておくと、D:\OpenCV\sourceの中に、展開後のファイル、フォルダを置くようになります。展開直後のopencv-masterという名前のフォルダは各自で名前を変えるなり、中身だけソースのディレクトリに置くなり何なりしてください。


また、DOWNLOADS | OpenCVにある3.0.0Betaは2015/04/14現在、Python3用モジュールのビルドがUnicodeError起こして失敗しますから、必ずGitHubからソースファイルをダウンロードするようにしてください。

参考URL:Mod: Open header files with encoding if Python version is greater than 2... by shiquanwang · Pull Request #3406 · Itseez/opencv · GitHub



この先はPython2を除外する部分以外はほぼこのページと同じ。こちらを見ながら進めると良いと思います。

www.buildinsider.net



2,Cmakeを使って.slnを生成

http://www.cmake.org/download/

こっからWindows用のインストーラをダウンロードしてインストールして起動。上の方にビルド先とソースのディレクトリを指定するところがあるので、そこに先ほどのパスを入力するなり参照するなりしてください。


パスの指定が終わったらConfigureをクリック。赤くなってなんか沢山出てくる。ここで、BUILD内の「BUILD opencv python2」というところのチェックを必ず外すこと。そしてその下にあるPython2関連のエントリを全て削除(選択して右上にあるRemoveEntryから消す)。


f:id:zyusou:20150414164602p:plain


ここにあるPYTHON2で始まる部分を全て削除。

なんでこんなことするかって言うと、出力画面見るとこんなふうになっていてですね。

Python 2:
Interpreter: C:/Anaconda3/python.exe (ver 3.4.3)
Libraries: C:/Anaconda3/libs/python34.lib (ver 3.4.3)
numpy: C:/Anaconda3/lib/site-packages/numpy/core/include (ver 1.9.2)
packages path: C:/Anaconda3/Lib/site-packages

要するにPython3なのに2として見られちゃってるっぽいです。チェック外すだけでも良さそうなんだけど、なんか気持ち悪いし失敗するとダルいので消しときましょう。

また、ENABLE内の「ENABLE SOLUTION FOLDERS」にチェックが入っていることを確認して下さい。これが入っていないとあとからビルドできません。いや、たぶんできるんだろうけど面倒になるので入れときましょう。

以上の作業を行ったか確認したら、generateボタンを押して待ちます。

3,VisualStudio2013でビルドする。

D:\OpenCV\buildにあるOpenCV.slnからVisualStudioを起動します。環境によっては起動してから結構な間応答なしになりますし、応答したかと思ったら初期化に馬鹿みたいに時間が掛かると思いますのでお茶でも飲んで待ちます。(私のノート(RAM8GB,CPUはcore-i7 2630QM 2.0GHz)で大体5,6分ぐらいでした)。

終わったらソリューション構成をDebugからReleaseに切り替えて、CMakeTargetsのINSTALLを右クリック、ビルドをクリックします。こっからまた時間がかかるのでお茶飲んで待ちます。

ビルドエラー起こした時の対処ですが、基本的にこのタイミングでエラー起こすとしたら私と同じようにDebugのままビルドした可能性があります。エラーに"python34_d.lib"がありませんとか何とか出た場合は確実にそうです。Releaseに切り替えましょう。


ビルドがおわったらインタプリタを起動してインストールできているか確認してみましょう。

Python interactive window. Type $help for a list of commands.
>>> import cv2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: DLL load failed: 指定されたモジュールが見つかりません。
>>> 


あ、パス通すの忘れてました。

4,環境変数を編集する。

コントロールパネル → システムとセキュリティ → システム → システムの詳細設定をクリック。
詳細設定タブの下の方にある環境変数をクリックして、「D:\OpenCV\build\install\x64\vc12\bin」を追加。これで動く。

Python interactive window. Type $help for a list of commands.
>>> import cv2
>>> cv2.__version__
'3.0.0-dev'

お疲れ様でした。


おまけ


OpenCV: OpenCV-Python Tutorials

おどろくべきことに、OpenCV3.0.0のPython向けチュートリアルはPython3.x向けに書かれています。

OpenCV introduces a new set of tutorials which will guide you through various functions available in OpenCV-Python. This guide is mainly focused on OpenCV 3.x version (although most of the tutorials will also work with OpenCV 2.x).

ほとんどのチュートリアルは2系でも動くらしいですから、既存ユーザも安心ですね。

実践OpenCV 2.4 for Python―映像処理&解析

実践OpenCV 2.4 for Python―映像処理&解析

OpenCVによる画像処理入門 (KS情報科学専門書)

OpenCVによる画像処理入門 (KS情報科学専門書)