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

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

  • OS X 10.9.2 (13C1021)
  • Homebrew
  • Python 2.7.6
  • NumPy 1.8.1
  • OpenCV 2.4.8.2

Mac OS X で OpenCV 3 + Python 2/3 での環境構築についてはこちらをご覧下さい.

Homebrew の導入

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

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

brew tap homebrew/python
brew tap homebrew/science

Python の導入

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

brew install python

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

which python

を実行して,

/usr/local/bin/python

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

NumPy の導入

OpenCV の Python バインディングはデータを扱うために NumPy を利用しているため導入します. virtualenv 等は用いずに, 直接インストールするのが良いようです.

pip install numpy

OpenCV の導入

OpenCV を Homebrew でインストールします.

brew info opencv

を実行し, 必要に応じて Optional のパッケージを事前に導入しておきます. OpenCV のインストールは

brew install opencv

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

テスト

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

$ python
Python 2.7.6 (default, Apr  9 2014, 11:48:52)
[GCC 4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.38)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>>

virtualenv から OpenCV モジュールを利用する

アプリケーションの開発等で virtualenv を利用したい場合は, 通常通り仮想環境を作成し, 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/lib/python2.7/site-packages/cv.py ./
ln -s /usr/local/lib/python2.7/site-packages/cv2.so ./

更新

  • 2015/7/3 一部手順の説明を改善しました

OS X Yosemite

OS X Yosemite でも上記の方法でインストールできました. 環境は以下の通りです.

  • OS X Yosemite 10.10 (14A361c)
  • Python 2.7.8
  • Numpy 1.9.0
  • OpenCV 2.4.9