はじめに
環境を一から作る機会があったので,せっかくだから整理します.少しでもお役に立てば.この記事は主に初学者向けなので,PythonおよびOpenCVは基本的に標準的に入るバージョンのものを使います.
M1 Macを取り巻く環境は日々更新されています.私はさまざまな記事を参考にさせていただいてインストール作業を行いましたが,参照記事ではうまくいかなかったと書かれていた事も,現時点ではスムーズに進んだりしました.先人の努力に感謝します.
使用環境
- MacBook Pro (14インチ, 2021) Apple M1 Maxプロセッサ
- macOS Monterey 12.0.1
この記事をフォローすると使えるようになる環境
- Visual Studio Code
- Homebrew経由でインストールされるPython3
- pip経由でインストールされるOpenCV
この記事でやらないこと
- pyenvでのPythonのバージョン管理
この記事を読んでPythonの環境を構築する人にはまだ不要でしょう.pyenvの話が混ざると混乱を招く恐れがあるので,今回は使わないことにします.
手順
Homebrewをインストールする
まず,HomebrewのWebサイトの「インストール」の項にあるコードを,macOSのターミナルに貼り付けて実行します.下記は記事執筆時点での最新のコードの例ですが,Webサイトから入手する方が良いでしょう.
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
最初の方で_インストールを続けるにはRETURNキーを,中止するにはそのほかのキーを押してください_という指示が出るので従います.
しばらく待つと,最後の方で===> Next steps:
としてPATHを通すように指示されます.そこに書かれている2行のコードをターミナルで順に実行します.
$ echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/[ユーザ名]/.zprofile
$ eval "$(/opt/homebrew/bin/brew shellenv)"
ターミナルでヘルプを表示させてみて,無事にコマンドが動作すれば完了です.
$ brew help
PythonをHomebrew経由でインストールする
割と何も考えず,最新のPythonをインストールします.
$ brew install python3
記事執筆時点では,バージョンを確認すると3.9.8がインストールされていました.いい感じです.
$ python3 -V
Python 3.9.8
いちおうHomebrew由来のものであることを確かめてみます.
$ which python3
/opt/homebrew/bin/python3
Visual Studio CodeをHomebrew経由でインストールする
brew cask経由でVisual Studio Codeをインストールできるか探してみます.
$ brew search visual studio code
==> Casks
visual-studio-code ✔
homebrew/cask-versions/visual-studio-code-insiders
あるのでインストールします.
$ brew install visual-studio-code
ちなみに筆者の環境では,上記の操作によりApple Silicon版がインストールされました.
Visual Studio Codeをセットアップする
Visual Studio Codeを使用する際には,Microsoftのアカウントでサインインしておくと環境の共有などが可能で便利です.拡張機能は下記のものを導入しました.
- Japanese Language Pack for Visual Studio Code
- Python
- OpenCV Snippets
- OpenCV-intellisense
Visual Studio CodeでPythonを使用する際には,どのPythonを利用するか? を聞かれます.Mac標準のPythonではなく,Homebrew経由でインストールしたPythonを選択します.先ほど
$ which python3
/opt/homebrew/bin/python3
で見たパスのPythonを指定してください.
venvで仮想環境を作り,OpenCVなどを導入する
venvはPython3.3以降に標準搭載されている仮想環境の構築ツールです.作成した仮想環境ごとにライブラリのインストールなどが可能です.
今回は~/codes
というパスがあった時にPython_OpenCV_Test
というフォルダを作り,その環境内でOpenCVのコードを動かすことを想定します.操作を明確に書くとこういうことです.
$ cd ~/codes
$ mkdir Python_OpenCV_Test
$ cd Python_OpenCV_Test
実際に仮想環境を作成するには,このように書きます.
Python_OpenCV_Test $ python3 -m venv (name_of_venv)
(name_of_venv)
は好きなように決められますが,.venv
とすることが多いようです.つまり典型的には下記のようになります.
Python_OpenCV_Test $ python3 -m venv .venv
仮想環境を有効化するには,下記のコマンドを使います.
Python_OpenCV_Test $ source (name_of_venv)/bin/activate
つまり,名前を.venv
にした場合は下記のとおりです.
Python_OpenCV_Test $ source .venv/bin/activate
仮想環境が有効であるときには,ターミナルの行の先頭に仮想環境の名前が書かれます.
(.venv) $
ちなみに,仮想環境を無効化するにはdeactivateとします.
仮想環境が有効化されている状態で,必要なものをpipを使ってインストールします.今回はこれくらいにします.
(.venv) $ pip install numpy
(.venv) $ pip install opencv-python
これで環境は整いました.あとは動かすのみです.
Visual Studio CodeでHello Worldを書く
まず,Visual Studio Codeで「フォルダーを開く」を選択し,先ほどのフォルダを開きます.
次に,「新しいファイル」を選択し,適当な名前 (例えばhello.py) でファイルを作成します.
このとき,ついでに先ほどのフォルダに適当な画像ファイル (例えばtest.jpg) を置いておきます.
### インポート
import numpy as np #numpy
import cv2 #OpenCV
### メインプログラム
img = cv2.imread("test.jpg")
# 画像の表示
cv2.imshow("Hello World", img)
cv2.waitKey(0)
# 全てのウインドウをキル
cv2.destroyAllWindows()
このプログラムを実行します.右上にある再生ボタンを押すのが分かりやすいですね.
test.jpgが別ウインドウで表示されれば,OpenCVは正しく使えるようになりました.