フクシャチョーです。
シャチョーはすでにAndroidやiOSでOpenCVを使ったアプリケーションを開発しているのですが、フクシャチョーは別件で、MacOS上で、OpenCVを使って処理できるかも・・・というものがあったので、今日から入門しました。
この投稿では、MacOS HighSierra上で、python3でOpenCV3を動かし、OpenCV-Python Tutorialsの簡単なサンプルプログラムを動かすまでを説明します。
前提
- Macのバージョン 10.13.3
- Homebrewはすでにinstall済み
brew update brew upgrade
も済んでいる状態。
- XCodeはインストール済み
- XCodeコマンドラインツールもインストール済み
sudo xcode-select --install
python3
pythonの管理はpyenvで行います
現在、選択しているバージョンは3.6.4
$ pyenv versions system 3.5.2 * 3.6.4 (set by /Users/bohebohechan/.pyenv/version) anaconda3-5.1.0
OpenCV3
opencv has been migrated to homebrew-core
今までは、homebrew-scienceにあったものが、coreに入ったようですね。
インストールします
brew install opencv3 --with-contrib --with-python3
pyenvでインストールしたPythonからOpenCVを参照できるようにします
a). Pyenvでインストールしたpythonパッケージの管理ディレクトリ
/Users/{username}/.pyenv/versions/3.6.4/lib/python3.6/site-packages
b) .OpenCVのシェアードオブジェクト cv2.cpython-36m-darwin.so
/usr/local/Cellar/opencv/3.4.1_2/lib/python3.6/site-packages/cv2.cpython-36m-darwin.so
a) のディレクトリに b)を参照するためのシンボリックリンクを作成します
ln -s /usr/local/Cellar/opencv/3.4.1_2/lib/python3.6/site-packages/cv2.cpython-36m-darwin.so /Users/{username}/.pyenv/versions/3.6.4/lib/python3.6/site-packages
動作確認
pythonをコマンドライン起動して、OpenCVをインポートしてみます
$ python Python 3.6.4 (default, Mar 15 2018, 22:16:10) [GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.39.2)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import cv2 >>>
動きましたね!
せっかくなので、チュートリアルを実行してみましょう
Getting Started with Images — OpenCV\-Python Tutorials 1 documentation
ディレクトリを作成して、処理したい画像を用意
OpenCVPython/ $ ├── flower.JPG └── sample1.py
サンプルプログラムをコピー
import numpy as np import cv2 img = cv2.imread('flower.JPG',0) cv2.imshow('image',img) k = cv2.waitKey(0) & 0xFF if k == 27: # wait for ESC key to exit cv2.destroyAllWindows() elif k == ord('s'): # wait for 's' key to save and exit cv2.imwrite('flower.png',img) cv2.destroyAllWindows()
numpyが入っていない場合は、pip3 install numpyでインストールしましょう
実行
python sample1
実行するとウィンドウが立ち上がり、処理された画像が表示されます。
右が処理前の画像、左がグレースケール処理された画像です。
実行終了
立ち上がったウィンドウ上で、Escを押すとそのまま終了します。
sを押して終了すると、処理した画像をpngファイルに保存して終了します。
やりたいことは、このOpenCV-Python Tutorialsの中のコードを参考にしながら、チャレンジしてみます!