mainvisual

macでpythonを使ってOpenCVをインストールしようとした時にいろいろ迷ったので、 ここにまとめておこうと思います。

まず初めに、brewには2系と3系のOpencCVが存在します。 そして、OpenCV2の場合、pythonは2系でしか扱う事が出来ません。OpenCV3の場合では、python2,3の両方から扱うことが出来ます。

そして、pythonからOpenCVのライブラリを読み込む際にはどちらともimport cv2とします。 なので、OpenCVのどちらともインストールする場合には、brew linkという機能を使って、切り替えることになります。これについては、追々説明したいと思います。

環境

OS: iMac Pro OSX Yosemite 10.10.5

OpenCV2のインストール手順

$ brew update
$ brew tap homebrew/science
$ brew install cmake pkg-config jpeg libpng libtiff eigen openexr numpy
$ brew install tbb    # 動作の高速化を狙えます

ffmpegは、OpenCVで動画(カメラを含む)を使いたい場合は、こちらを実行して下さい

$ brew install ffmpeg # OpenCVで動画(カメラを含む)を使いたければ、これも導入します
$ brew install opencv --with-ffmpeg --with-tbb --without-python

特に動画は扱わない場合はこちらを実行してください

$ brew install opencv --with-tbb --without-python

最後に、OpenCV2をpythonから使えるようにするため、パスの設定をします。

$ brew link opencv

OpenCV3のインストール手順

$ brew update
$ brew tap homebrew/science
$ brew install cmake pkg-config jpeg libpng libtiff eigen openexr numpy
$ brew install tbb    # 動作の高速化を狙えます
$ brew install ffmpeg # OpenCVで動画(カメラを含む)を使いたければ、これも導入します
$ brew install opencv3 --with-ffmpeg --with-tbb --with-python3

ffmpegは、OpenCVで動画(カメラを含む)を使いたい場合は、こちらを実行して下さい

$ brew install ffmpeg # OpenCVで動画(カメラを含む)を使いたければ、これも導入します
$ brew install opencv3 --with-ffmpeg --with-tbb --with-python3

特に動画は扱わない場合はこちらを実行してください

$ brew install opencv3 --with-tbb --with-python3

最後に、OpenCV3をpythonから使えるようにするため、パスの設定をします。

$ brew link opencv3 --force

OpenCV2系3系両方インストールする場合

$ brew update
$ brew tap homebrew/science
$ brew install cmake pkg-config jpeg libpng libtiff eigen openexr numpy
$ brew install tbb    # 動作の高速化を狙えます
$ brew install ffmpeg # OpenCVで動画(カメラを含む)を使いたければ、これも導入します
$ brew install opencv --with-tbb --without-python
$ brew install opencv3 --with-ffmpeg --with-tbb --with-python3

これでインストールされました

OpenCV2系をpythonから使う場合はこのコマンドを実行します

$ brew unlink opencv opencv3 && brew link opencv

OpenCV3系をpythonから使う場合はこのコマンドを実行します

$ brew unlink opencv opencv3 && brew link opencv3 --force

インストールされる場所

  • OpenCV2の場合: /usr/local/Cellar/opencv
  • OpenCV3の場合: /usr/local/Cellar/opencv3

正常にインストールされているか確認

次のコードを適当なファイル名で保存して、実行します。

import cv2
import numpy as np

size = 100, 100, 3
red_img = np.zeros(size, dtype=np.uint8)

cv2.imshow('result', red_img)

cv2.waitKey(0)
cv2.destroyAllWindows()

このような画像が出たら、正常です。

画像