Mac OS X で OpenCV 3 + Python 2/3 の開発環境を整備する方法

Mac OS X で OpenCV 3 + Python 2/3 の開発環境を整備する方法をまとめます. 今回この方法で導入テストを行なった環境は以下の通りです.

  • OS X 10.10.4 (14E46)
  • Homebrew
  • Python 2.7.10 / 3.4.3
  • NumPy 1.9.2
  • OpenCV 3.0.0

Mac OS X + OpenCV 2 + Python 2 での環境構築についてはこちらを参照してください.

Homebrew の導入

これについては多くの方が既に導入されていると思いますので省略します. 詳しくは Homebrew の公式サイトを参照してください.

NumPy は homebrew-python, OpenCV は homebrew-science に Formula があるので, それぞれ tap しておきます.

brew tap homebrew/python
brew tap homebrew/science

Python の導入

Homebrew から最新安定版の Python 2.7 / 3.4 をインストールします.

brew install python python3

OS X に入っている Python ではなく, Homebrew でインストールした Python を利用していることを確認します. Homebrew のパッケージを /usr/local 以下 (デフォルト) にインストールしている場合

which python

を実行して,

/usr/local/bin/python

が表示されれば OK です. Python 3 についても同様の方法でチェックできます.

/usr/bin/python となる場合は PATH の設定が出来ていない可能性があるため, Homebrew の導入手順を再確認してください.

NumPy の導入

OpenCV の Python バインディングはデータを扱うために NumPy を利用しているため導入します. virtualenv 等は用いずに, 直接インストールしてください. Python 3 でも利用するためには明示的にオプション (--with-python3) を指定する必要があります.

brew install numpy --with-python3

OpenCV の導入

OpenCV 3 を Homebrew でインストールします. OpenCV 2 とは Formula の名前が変わっています.

brew info opencv3

を実行し, オプションを確認しておきます. 必要なオプションを指定して, 以下のように OpenCV 3 のインストールを実行します.

2017年6月追記: 現在,Python 2 または 3 のどちらかのバインディングしかインストールできなくなっているようです. Python 2 から OpenCV 3 を使いたい場合は,

brew install opencv3 --with-python3

Python 3 から使いたい場合は,

brew install opencv3 --with-python3 --without-python

を実行します. 依存するパッケージのインストールも含め少し時間がかかります.

Python から OpenCV 3 を利用する

1. グローバル環境の Python で OpenCV を利用する

OpenCV 3 の Formula は keg-only なので, /usr/local 以下に自動的にリンクされません. /usr/local 以下にシンボリックリンクを作成するには以下のコマンドを実行します.

brew link opencv3 --force

注意: OpenCV 2 も導入している場合, このコマンドを実行すると OpenCV 2 でインストールしたファイルを上書きしようとしてしまいます. OpenCV 2 を unlink または uninstall するか, OpenCV 3 を virtualenv 内で利用するようにしてください.

2. virtualenv 環境の Python で OpenCV を利用する

virtualenv 内の Python から OpenCV を利用したい場合は, 通常通り仮想環境を作成し, NumPy を仮想環境内に改めてインストールし, OpenCV のモジュールのみ別途シンボリックリンクを作成して利用することができます.

例えば ~/venv に仮想環境を作成し OpenCV のモジュールを利用出来るようにするには, 以下のようなコマンドを実行してシンボリックリンクを作成します.

# 仮想環境の作成
virtualenv -p /usr/local/bin/python2.7 ~/venv
# NumPy のインストール
source ~/venv/bin/activate
pip install numpy
# OpenCV のインストール
cd ~/venv/lib/python2.7/site-packages
ln -s /usr/local/Cellar/opencv3/3.0.0/lib/python2.7/site-packages/cv2.so ./

Python 3 の場合は以下のようになります.

# 仮想環境の作成
virtualenv -p /usr/local/bin/python3.4 ~/venv
# NumPy のインストール
source ~/venv/bin/activate
pip install numpy
# OpenCV のインストール
cd ~/venv/lib/python3.4/site-packages
ln -s /usr/local/Cellar/opencv3/3.0.0/lib/python3.4/site-packages/cv2.so ./

テスト

OpenCV を Python から使えるようになったかテストします. 以下のように cv2 モジュールを読み込めればインストール完了です.

$ python
Python 2.7.10 (default, May 26 2015, 13:01:57)
[GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.0.0'
>>>

$ python
Python 3.4.3 (default, Mar 16 2015, 23:47:09)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
‘3.0.0'
>>>

更新履歴

  • 2015/9/6 OpenCV インストールのための NumPy の導入手順を修正
  • 2016/12/4 typo を修正
  • 2017/6/16 OpenCV のインストール手順について追記