Python3.10用にOpenCV4をビルドしてVSCodeでコード補完させる
- はじめに
- 環境
- OpenCVをアンインストールしておく
- OpenCVのソースコードをダウンロードする
- CMakeのインストール
- CMakeでVisual Studio 2019用のプロジェクトファイルを生成する
- Visual Studio 2019でOpenCVのビルドを行う
- pipの管理下に入れる
- VSCodeでコード補完されるか確認してみる。
- おわりに
はじめに
前回までにPython3.10のインストールとwhlファイルから非公式のビルド済みOpenCVを導入し、VSCodeでPythonコードを実行する所までしました。
madai21.hatenablog.com
madai21.hatenablog.com
しかし、この方法(pydをimport)ではVSCodeでOpenCV関連のコード補完(オートオンプリート)されないという問題があります。
例えばPythonのソースコードでcv2.と入力しても候補となるコードが出てくれません。
本来であればこう出て欲しいですよね^^;
imreadをマウスオーバーしてもanyと出るだけで関数の説明が出てくれませんね。。
これだとVSCodeの良さ半減です。
なので、今回はOpenCV4を自前でビルドしてVSCodeでコード補完できるようにしてみようと思います。
OpenCVをアンインストールしておく
まず、Pythonにインストール済みのOpenCVをアンインストールしておきましょう。
以下のコマンドでアンインストールできます。
※OpenCVをインストールしていなければこの手順は不要です。
pip uninstall opencv-python -y
OpenCVのソースコードをダウンロードする
gitコマンドでCloneしてもいいですが、以下のページから直接zipファイルを取得することもできるので取得します。
※2021/10/15時点では4.5.4ですので、以後そのバージョンを導入するための内容となります。
github.com
CodeからDownload ZIPを選ぶことでダウンロードできます。
ダウンロードしたopencv-master.zipを解凍し、Cドライブ直下にコピーしておきます。
後ほど必要になるので、このタイミングでビルド用のbuildフォルダ(C:\opencv-master\build)を新規作成しておきましょう。
CMakeのインストール
OpenCVのビルドする前にCMakeを行う必要があるので、Windows用のCMakeツール(CMake GUI)をインストールします。
インストーラーは以下の場所から取得できます。
cmake.org
Downloadを選びましょう。
Windows10 64bitなので、cmake-3.22.0-rc1-windows-x86_64.msiを選択します。
選択後インストーラーのダウンロードを開始します。
ダウンロードしたcmake-3.22.0-rc1-windows-x86_64.msiを実行しましょう。
Nextを押します。
ライセンス規約に問題なければチェックし、Nextを押します。
パスを通すようにするため、Add CMake to the system PATH for all usersを選択し、Nextを押します。
インストール先に問題なければ、Nextを押しましょう。
Installボタンを押してインストールを開始します。
インストールが完了したらFinishを押して完了しましょう。
CMakeでVisual Studio 2019用のプロジェクトファイルを生成する
CMakeを起動します。
Browse SourceでOpenCVのソースコードを選択しましょう。
次にBrowse Buildで先ほど作成したbuild用のフォルダを選択します。
Configureを押しましょう。
Visual Studio 16 2019とx64を選択しておきましょう。
その後Finishを押します。
すると以下の赤枠の場所にConfigureを示す表示が更新されていきます。
終わるまでしばらく待ちましょう。
Configureが終わるとBuildオプションが表示されるようになります。
以下のBuildオプションを設定しておきます。
次にGenerateを押しましょう。
Generateが終わるとVisual Studio 2019用のプロジェクトファイルが生成されています。
Visual Studio 2019でOpenCVのビルドを行う
Open Projectを押すとVisual Studio 2019が起動します。
メニューからビルド - バッチビルドを選びましょう。
INSTALL Releaseにチェックを付けてビルドを押します。
OpenCVのビルドが開始されるので待ちます(ビルド終わるまで10分以上かかると思います)
ビルドでエラー出なければ終了です。
CMakeで指定したPYTHON3_PACKAGE_PATHの場所にcv2モジュールが生成されているはずです。
pipの管理下に入れる
pip listするとまだopencvがないことがわかります。
以下のコマンドを入力してOpenCVをpipの管理下に入れましょう。
python C:\opencv-master\build\python_loader\setup.py install
もう一度pip listで確認してみると、今度はOpenCVの情報が表示されましたね!
VSCodeでコード補完されるか確認してみる。
Visual Studio Codeを起動してみましょう。
pythonファイルでcv2.と入力すると以下のようにコード補完されるようになりましたね^^
imreadをマウスオーバーするとAPIの説明が出るようにもなりました。
おわりに
これでようやくPython3.10 + OpenCV4の環境が整った感じですね。
今後Pythonのバージョンが上がっても今回のようにOpenCVのビルドをしてあげれば問題なさそうですね。
最後に今回とても参考になったサイト様の紹介をさせて頂きます。
dev.infohub.cc