⚒️

WindowsでOpenCVをビルドする

2024/04/20に公開

環境は以下の通りです。

  • Windows 11
  • OpenCV 4.9
  • CMake 3.27

Cドライブ直下で行っています。適宜パス等を読み替えてください。

CMakeのインストール

https://github.com/Kitware/CMake/releases

cmake-{version}-windows-x86_64.msi をダウンロード & インストールしてください。

wingetを使う場合
winget install Kitware.CMake

wingetがない場合は アプリインストーラーをインストールしてください。

ビルドツールのインストール

https://visualstudio.microsoft.com/ja/downloads/#build-tools-for-visual-studio-2022

Build Tools for Visual Studio 2022 をダウンロードしてください。

wingetを使う場合
winget install Microsoft.VisualStudio.2022.BuildTools

ダウンロードしたファイルを実行するとVisual Studio Installerが起動するので、「C++によるデスクトップ開発」を選択後、右の欄から「ビルドツール用C++ ATL」をチェックしてインストールしてください。

vs installer

OpenCVのビルド

  1. ディレクトリを作成する。

    mkdir opencv
    cd opencv
    
  2. opencvとopencv_contribをダウンロードする。

    curl.exe -Lo opencv.zip https://github.com/opencv/opencv/archive/4.x.zip
    curl.exe -Lo opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.x.zip
    
  3. 展開する。

    tar.exe -xvf opencv.zip
    tar.exe -xvf opencv_contrib.zip
    
  4. ビルド用ディレクトリを作成する。

    mkdir build
    cd build
    
  5. ビルドする。

    cmake -G "Visual Studio 17 2022" -A x64 -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.x/modules -D BUILD_opencv_world=ON ../opencv-4.x
    & 'C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\MSBuild.exe' .\ALL_BUILD.vcxproj /p:Configuration=Debug /p:Platform=x64
    & 'C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\MSBuild.exe' .\ALL_BUILD.vcxproj /p:Configuration=Release /p:Platform=x64
    & 'C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\MSBuild.exe' .\INSTALL.vcxproj /p:Configuration=Debug /p:Platform=x64
    & 'C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\MSBuild.exe' .\INSTALL.vcxproj /p:Configuration=Release /p:Platform=x64
    
  6. パスを通す。

    ユーザー環境変数の OpenCV_DIRC:\opencv\build\install\x64\vc17 を、 Path%OPENCV_DIR%\bin%OPENCV_DIR%\lib を追加しています。

    [Environment]::SetEnvironmentVariable("OpenCV_DIR", "C:\opencv\build\install\x64\vc17", "User")
    $oldPath = [Environment]::GetEnvironmentVariable("Path", "User")
    $newPath = $oldPath + ";%OPENCV_DIR%\bin;%OPENCV_DIR%\lib"
    [Environment]::SetEnvironmentVariable("Path", $newPath, "User")
    

    環境変数の設定後、PowerShellを開き直し、 opencv_version と入力してバージョン情報が出てくればOKです。

GitHubで編集を提案

Discussion