Web Analytics

こつこつエンジニア

現役アプリ開発者によるIT系特化ブログ

Python3.10用にOpenCV4をビルドしてVSCodeでコード補完させる

f:id:madai21:20211015125354j:plain

はじめに

前回までにPython3.10のインストールとwhlファイルから非公式のビルド済みOpenCVを導入し、VSCodePythonコードを実行する所までしました。
madai21.hatenablog.com
madai21.hatenablog.com


しかし、この方法(pydをimport)ではVSCodeOpenCV関連のコード補完(オートオンプリート)されないという問題があります。
例えばPythonソースコードでcv2.と入力しても候補となるコードが出てくれません。
本来であればこう出て欲しいですよね^^;
f:id:madai21:20211015122038p:plain


imreadをマウスオーバーしてもanyと出るだけで関数の説明が出てくれませんね。。
f:id:madai21:20211015121814p:plain


これだと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を選ぶことでダウンロードできます。
f:id:madai21:20211015094707p:plain


ダウンロードしたopencv-master.zipを解凍し、Cドライブ直下にコピーしておきます。
後ほど必要になるので、このタイミングでビルド用のbuildフォルダ(C:\opencv-master\build)を新規作成しておきましょう。

CMakeのインストール

OpenCVのビルドする前にCMakeを行う必要があるので、Windows用のCMakeツール(CMake GUI)をインストールします。
インストーラーは以下の場所から取得できます。
cmake.org


Downloadを選びましょう。
f:id:madai21:20211015100057p:plain


Windows10 64bitなので、cmake-3.22.0-rc1-windows-x86_64.msiを選択します。
選択後インストーラーのダウンロードを開始します。
f:id:madai21:20211015100144p:plain


ダウンロードしたcmake-3.22.0-rc1-windows-x86_64.msiを実行しましょう。
Nextを押します。
f:id:madai21:20211015100336p:plain


ライセンス規約に問題なければチェックし、Nextを押します。
f:id:madai21:20211015100413p:plain


パスを通すようにするため、Add CMake to the system PATH for all usersを選択し、Nextを押します。
f:id:madai21:20211015100647p:plain


インストール先に問題なければ、Nextを押しましょう。
f:id:madai21:20211015100847p:plain


Installボタンを押してインストールを開始します。
f:id:madai21:20211015100951p:plain


インストールが完了したらFinishを押して完了しましょう。
f:id:madai21:20211015101058p:plain

CMakeでVisual Studio 2019用のプロジェクトファイルを生成する

CMakeを起動します。
Browse SourceでOpenCVソースコードを選択しましょう。
f:id:madai21:20211015102954p:plain


次にBrowse Buildで先ほど作成したbuild用のフォルダを選択します。
f:id:madai21:20211015103112p:plain


Configureを押しましょう。
f:id:madai21:20211015103221p:plain


Visual Studio 16 2019とx64を選択しておきましょう。
その後Finishを押します。
f:id:madai21:20211015103328p:plain


すると以下の赤枠の場所にConfigureを示す表示が更新されていきます。
終わるまでしばらく待ちましょう。
f:id:madai21:20211015103540p:plain

Configureが終わるとBuildオプションが表示されるようになります。
以下のBuildオプションを設定しておきます。

  • BUILD_opencv_python3にチェック
  • OPENCV_PYTHON3_VERSIONにチェック
  • PYTHON3_PACKAGE_PATHにビルド後格納するフォルダパス

f:id:madai21:20211015104940p:plain


次にGenerateを押しましょう。
f:id:madai21:20211015105302p:plain


Generateが終わるとVisual Studio 2019用のプロジェクトファイルが生成されています。
f:id:madai21:20211015105641p:plain

Visual Studio 2019でOpenCVのビルドを行う

Open Projectを押すとVisual Studio 2019が起動します。
f:id:madai21:20211015105715p:plain

メニューからビルド - バッチビルドを選びましょう。
f:id:madai21:20211015112023p:plain


INSTALL Releaseにチェックを付けてビルドを押します。
OpenCVのビルドが開始されるので待ちます(ビルド終わるまで10分以上かかると思います)
f:id:madai21:20211015112113p:plain


ビルドでエラー出なければ終了です。
CMakeで指定したPYTHON3_PACKAGE_PATHの場所にcv2モジュールが生成されているはずです。
f:id:madai21:20211015114146p:plain

pipの管理下に入れる

pip listするとまだopencvがないことがわかります。
f:id:madai21:20211015114331p:plain


以下のコマンドを入力してOpenCVをpipの管理下に入れましょう。

python C:\opencv-master\build\python_loader\setup.py install


もう一度pip listで確認してみると、今度はOpenCVの情報が表示されましたね!
f:id:madai21:20211015114727p:plain

VSCodeでコード補完されるか確認してみる。

Visual Studio Codeを起動してみましょう。
pythonファイルでcv2.と入力すると以下のようにコード補完されるようになりましたね^^
f:id:madai21:20211015115411p:plain

imreadをマウスオーバーするとAPIの説明が出るようにもなりました。
f:id:madai21:20211015115538p:plain

おわりに

これでようやくPython3.10 + OpenCV4の環境が整った感じですね。
今後Pythonのバージョンが上がっても今回のようにOpenCVのビルドをしてあげれば問題なさそうですね。

最後に今回とても参考になったサイト様の紹介をさせて頂きます。
dev.infohub.cc