Mac HighSierraにOpenCV3を入れる

だいぶ前にopencvを入れようとしてなんかうまくいかなくて挫折してそのままにしていたのですが、
また割と必須な状況になったので、再びトライしてみるとうまくいったのでその時のメモです。

 

OpenCVとは

 

いろんな言語で使える画像処理系のライブラリです。
今回はPythonで利用します。

 

環境

 

今回試した環境は以下の通りです。
macOS HighSierra: 10.13.4
Homebrew: 1.6.8
pyenv: 1.2.3
python3.6

 

入れたもの
opencv3

 

インストールの手順

 

brewを用いてインストールします。
$ brew reinstall opencv3

インストールが完了したときにターミナルに
🍺 /usr/local/Cellar/opencv/3.4.1_5: 600 files, 214.8MB
こんな感じのログが出ているかと思いますが、ここに表示されているpathをあとで使うのでメモしておいてください。

 

では、インストールできたので早速使ってみます。
名前はopencv3ですがimport cv2としてimoprtします(ややこしいですね
しかし、普通にimportするとエラーが出ました。

 

ですが、以下のようにするとimportできました。

 

なので、いちいちsysとか書かなくてもimportできるように「pathを通す」という作業をします。
「pathを通す」とは簡単に言うと、実行ファイルのある場所をシェルにお教えてあげることです(ざっくりしすぎか)

 

ここで、注意なのですが
「opencv3をmacに入れた」という記事はたくさんありますが、そのままコピペしても多分動かないことのほうが多いと思います。
なぜなら使用しているPythonなどのバージョンが異なっていたりするからです。
なので、ここからは慎重に自分の環境にあったパス指定してすすめてください。

 

では、先程のインストールの最後に表示されたpathに対してシンボリックリンクを作成します。

シンボリックリンクというのはパスのショートカットみたいなもので以下のように作成します。。
ln -s ファイルのパス リンクのパス

 

「ファイルのパス」というのはさきほどメモしたもので、僕の場合は/usr/local/Cellar/opencv/3.4.1_5以下になります。

 

なので、今回は「ファイルのパス」は/usr/local/Cellar/opencv/3.4.1_5/lib/python3.6/site-packages/cv2.cpython-36m-darwin.so
となります。

 

また、僕はpyenvを使っているので「リンクのパス」は
~/.pyenv/versions/3.6.1/lib/python3.6/site-packages/
となるので、以下のように実行するとうまくpathを通すことができました。

 

$ ln -s /usr/local/Cellar/opencv/3.4.1_5/lib/python3.6/site-packages/cv2.cpython-36m-darwin.so ~/.pyenv/versions/3.6.1/lib/python3.6/site-packages/

 

ためしてみるとエラーが出ない!!
>>> import cv2

 

これでばりばり画像処理できますね。

 

【参考】

できたときに見た参考にしたページ
MacOS Sierra(10.12) に Pyenv で Python3 + openCV3 をインストールする – Qiita

シンボリックリンクの参考ページ
シンボリックリンクの作成、更新、削除、権限変更をしました。 – Qiita

コメントを残す