OpenCV3+Python3をMacOS HighSierraで 始めよう #初学者 #python3 #OpenCV

シェアする

フクシャチョーです。

シャチョーはすでに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の中のコードを参考にしながら、チャレンジしてみます!