OpenCV, OpenCV Contrib 4.14 のインストール(ソースコードを使用)(Windows 上)

【要約】 Windows環境でOpenCVをソースコードからインストールする手順を説明している.主な内容としては,OpenCVのビルドに必要な前提ソフトウェアのインストール,OpenCVとOpenCV contribのソースコードのダウンロード,CMakeを使用したビルド設定,Build Tools for Visual Studio 2022 (ビルドツール for Visual Studio 2022)を用いたビルドとインストール,システム環境変数の設定である.また,NVIDIA CUDA,Intel MKL,VTK,OpenNI2,OpenBLASなどの追加機能の統合方法も示している.インストール後の動作確認として,C++とPythonでの簡単な画像表示プログラムの例が提供されている.この方法は上級者向けで時間がかかるが,最新バージョンのOpenCVを使用したい場合や,特定の機能が必要な場合に有用である.記事全体を通して,コマンドラインの操作を具体的に示している.

OpenCV

OpenCV は,実時間コンピュータビジョン (real time computer vision) の アルゴリズムと文書とサンプルコードの集まり.

【関連する外部ページ】

【サイト内の関連ページ】

関連項目OpenCV PythonOpenCV のサンプルデータOpenCV のインストールと,C++ プログラムの実行

前準備

Build Tools for Visual Studio 2026 のインストール(Windows 上) [クリックして展開]

Build Tools for Visual Studio は,Visual Studio の IDE を含まない C/C++ コンパイラ,ライブラリ,ビルドツール等のコマンドライン向け開発ツールセットである。インストール済みの場合、この手順は不要である。

管理者権限コマンドプロンプトで以下を実行する。管理者権限のコマンドプロンプトを起動するには、Windows キーまたはスタートメニューから「cmd」と入力し、表示された「コマンドプロンプト」を右クリックして「管理者として実行」を選択する。

REM VC++ ランタイム
winget install --scope machine --id Microsoft.VCRedist.2015+.x64 -e --silent --disable-interactivity --force --accept-source-agreements --accept-package-agreements --override "/quiet /norestart"

REM Build Tools + Desktop development with C++(VCTools)+ 追加コンポーネント(一括)
winget install --scope machine --id Microsoft.VisualStudio.BuildTools -e --silent --disable-interactivity --force --accept-source-agreements --accept-package-agreements --override "--quiet --wait --norestart --nocache --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended --add Microsoft.VisualStudio.Workload.MSBuildTools --add Microsoft.VisualStudio.Component.VC.CMake.Project --add Microsoft.VisualStudio.Component.VC.Llvm.Clang --add Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset --add Microsoft.VisualStudio.Component.Windows11SDK.26100"

--add で追加されるコンポーネント

上記のコマンドでは,まず Build Tools 本体と Visual C++ 再頒布可能パッケージをインストールし,次に setup.exe を用いて以下のコンポーネントを追加している。

インストール完了の確認

winget list Microsoft.VisualStudio.BuildTools

上記以外の追加のコンポーネントが必要になった場合は Visual Studio Installer で個別にインストールできる。

Visual Studio の機能を必要とする場合は、追加インストールできる。

Python 3.12 のインストール(Windows 上) [クリックして展開]

以下のいずれかの方法で Python 3.12 をインストールする。Python がインストール済みの場合、この手順は不要である。

方法1:winget によるインストール

管理者権限コマンドプロンプトで以下を実行する。管理者権限のコマンドプロンプトを起動するには、Windows キーまたはスタートメニューから「cmd」と入力し、表示された「コマンドプロンプト」を右クリックして「管理者として実行」を選択する。

winget install --scope machine --id Python.Python.3.12 -e --silent --disable-interactivity --force --accept-source-agreements --accept-package-agreements --override "/quiet InstallAllUsers=1 PrependPath=1 Include_pip=1 Include_test=0 Include_launcher=1 InstallLauncherAllUsers=1"

--scope machine を指定することで、システム全体(全ユーザー向け)にインストールされる。このオプションの実行には管理者権限が必要である。インストール完了後、コマンドプロンプトを再起動すると PATH が自動的に設定される。

方法2:インストーラーによるインストール

  1. Python 公式サイト(https://www.python.org/downloads/)にアクセスし、「Download Python 3.x.x」ボタンから Windows 用インストーラーをダウンロードする。
  2. ダウンロードしたインストーラーを実行する。
  3. 初期画面の下部に表示される「Add python.exe to PATH」に必ずチェックを入れてから「Customize installation」を選択する。このチェックを入れ忘れると、コマンドプロンプトから python コマンドを実行できない。
  4. 「Install Python 3.xx for all users」にチェックを入れ、「Install」をクリックする。

インストールの確認

コマンドプロンプトで以下を実行する。

python --version

バージョン番号(例:Python 3.12.x)が表示されればインストール成功である。「'python' は、内部コマンドまたは外部コマンドとして認識されていません。」と表示される場合は、インストールが正常に完了していない。

Git のインストール(Windows 上) [クリックして展開]

管理者権限コマンドプロンプトで以下を実行する.管理者権限は,winget の --scope machine オプションでシステム全体にインストールするために必要となる.

REM Git をシステム領域にインストール
winget install --scope machine --id Git.Git -e --silent --disable-interactivity --force --accept-source-agreements --accept-package-agreements --override "/VERYSILENT /NORESTART /NOCANCEL /SP- /CLOSEAPPLICATIONS /RESTARTAPPLICATIONS /COMPONENTS=""icons,ext\reg\shellhere,assoc,assoc_sh"" /o:PathOption=Cmd /o:CRLFOption=CRLFCommitAsIs /o:BashTerminalOption=MinTTY /o:DefaultBranchOption=main /o:EditorOption=VIM /o:SSHOption=OpenSSH /o:UseCredentialManager=Enabled /o:PerformanceTweaksFSCache=Enabled /o:EnableSymlinks=Disabled /o:EnableFSMonitor=Disabled"

CMakeのインストール(Windows 上) [クリックして展開]

管理者権限コマンドプロンプトで以下を実行する。管理者権限のコマンドプロンプトを起動するには、Windows キーまたはスタートメニューから「cmd」と入力し、表示された「コマンドプロンプト」を右クリックして「管理者として実行」を選択する。

REM CMake をシステム領域にインストール
winget install --scope machine --id Kitware.CMake -e --silent --disable-interactivity --force --accept-source-agreements --accept-package-agreements --override "/qn /norestart ADD_CMAKE_TO_PATH=System"

7-Zip のインストール(Windows 上) [クリックして展開]

管理者権限コマンドプロンプトで以下を実行する。管理者権限のコマンドプロンプトを起動するには、Windows キーまたはスタートメニューから「cmd」と入力し、表示された「コマンドプロンプト」を右クリックして「管理者として実行」を選択する。

REM 7-Zip をシステム領域にインストール
winget install --scope machine --id 7zip.7zip -e --silent --installer-type msi --disable-interactivity --force --accept-source-agreements --accept-package-agreements --override "/qn /norestart"
REM 7-Zip のパス設定
powershell -NoProfile -Command "$p='C:\Program Files\7-Zip'; $c=[Environment]::GetEnvironmentVariable('Path','Machine'); if((Test-Path $p) -and $c -notlike \"*$p*\"){[Environment]::SetEnvironmentVariable('Path',\"$p;$c\",'Machine')}"

NVIDIA CUDA Toolkit 12.8のインストール

以下のコマンドを管理者権限コマンドプロンプトで実行する (手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。

REM NVIDIA CUDA Toolkit 12.8 をシステム領域にインストール
winget install --scope machine --id Nvidia.CUDA --version 12.8 -e --silent --disable-interactivity --force --uninstall-previous --accept-source-agreements --accept-package-agreements --override "-s -n"

REM 環境変数TEMP, TMPの設定(一時ファイルの保存先を短いパスに変更)
mkdir C:\TEMP
set "TEMP_PATH=C:\TEMP"
setx TEMP "%TEMP_PATH%" /M >nul
setx TMP "%TEMP_PATH%" /M >nul

OpenCV のインストール(ソースコードを用いたインストール)(Windows 上)

gflags,glog,Ceres ソルバ(Ceres Solver)のインストール

Windows での SuiteSparse,gflags,glog,Ceres ソルバ(Ceres Solver)のインストール: 別ページ »で説明

sfm を使うときはインストールする.

OpenCV のインストール(ソースコードを用いたインストール)(Windows 上)

OpenCV のソースコードを %HOMEPATH%\opencv, %HOMEPATH%\opencv_contrib にクローンし,C:\opencv にインストールする
  1. 以下のコマンドを管理者権限コマンドプロンプトで実行する (手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。
  2. OpenCV のバージョンの確認

    次のページで最新バージョンを確認できる.

    https://github.com/opencv/opencv

  3. OpenCV のソースコードをダウンロード
    cd /d c:%HOMEPATH%
    rmdir /s /q opencv
    git clone --recursive https://github.com/opencv/opencv.git
    
  4. OpenCV contrib のソースコードをダウンロード
    OpenCV contrib が不要の場合,この手順は不要である
    cd /d c:%HOMEPATH%
    rmdir /s /q opencv_contrib
    git clone --recursive https://github.com/opencv/opencv_contrib.git
    
  5. Python 3 のバージョンを調べる

    下の実行例では,Python のバージョンは 3.12 系列(3.12.10) である

    python --version
    
  6. Python 3 の場所を調べる

    複数表示されたときは,一番上を使う.この結果はあとの設定で使う.

    where python
    
  7. pip と setuptools の更新.numpy, pylint, flake8 のインストール.opencv-python のアンインストール
    python -m pip install -U pip setuptools
    python -m pip install -U numpy pylint flake8
    python -m pip uninstall -y opencv-python
    python -m pip uninstall -y opencv-python-headless
    python -m pip uninstall -y opencv-contrib-python
    
  8. cmake の実行

    パスの区切りは「\」でなく「/」

    「c:\」でなく「c:/」のようにする. opencv_contrib の modules 下の cmake のエラーを回避するためである.

    Python 3 の設定

    次の設定では,実際に存在するファイル名を設定する. 必要に応じて,自分のパソコンのファイルを検索すること.

    • -DPYTHON_DEFAULT_EXECUTABLE=C:/Program Files/Python312/python.exe
    • -DPYTHON3_EXECUTABLE=C:/Program Files/Python312/python.exe
    • -DPYTHON3_INCLUDE_DIR=C:/Program Files/Python312/include
    • -DPYTHON3_LIBRARY=C:/Program Files/Python312/libs/python312.lib
    • -DPYTHON3_NUMPY_INCLUDE_DIRS=C:/Program Files/Python312/lib/site-packages/numpy/_core/include

    * 先ほど調べた Python 3 のバージョンに応じて, Python 3.13 系列では「python313.lib」, Python 3.12 系列では「python312.lib」, Python 3.11 系列では「python311.lib」, Python 3.10 系列では「python310.lib」, Python 3.9 系列では「python39.lib」, Python 3.8 系列では「python38.lib」, Python 3.7 系列では「python37.lib」のようになる.

    * cmake のオプションに -DWITH_CUDA=ON を含めている.そのため,NVIDIA CUDA ツールキットを事前にインストールしておく必要がある.CUDA を使用しない場合は -DWITH_CUDA=OFF に変更し,CUDA 関連のオプション(CUDA_NVCC_FLAGS,OPENCV_CUDA_ARCH_BIN,WITH_NVCUVID,WITH_NVCUVENC)を削除すること.
    * OPENCV_CUDA_ARCH_BIN には,使用する GPU のアーキテクチャを指定する.下の例では Pascal(6.1)から Blackwell(10.0)までを含めている.Blackwell(10.0)を使用するには,対応する CUDA ツールキットのバージョンが必要である.不要なアーキテクチャを除くとビルド時間を短縮できる.

    cmake の実行手順例は次の通り

    cd /d c:%HOMEPATH%
    cd opencv
    rmdir /s /q build
    mkdir build
    cd build
    del CMakeCache.txt
    rmdir /s /q CMakeFiles
    cmake .. -A x64 -T host=x64 ^
    -DCMAKE_BUILD_TYPE=RELEASE ^
    -DBUILD_SHARED_LIBS=ON ^
    -DWITH_CUDA=ON ^
    -DCUDA_NVCC_FLAGS="-allow-unsupported-compiler" ^
    -DOPENCV_CUDA_ARCH_BIN=6.1,7.5,8.0,8.6,8.9,10.0 ^
    -DWITH_NVCUVID=OFF -DWITH_NVCUVENC=OFF ^
    -DBUILD_opencv_world=ON ^
    -DBUILD_opencv_apps=ON ^
    -DBUILD_opencv_sfm=OFF ^
    -DOPENCV_EXTRA_MODULES_PATH=C:%HOMEPATH%\opencv_contrib\modules ^
    -DWITH_PYTHON=ON ^
    -DBUILD_opencv_python2=OFF ^
    -DPYTHON_DEFAULT_EXECUTABLE="C:/Program Files/Python312/python.exe" ^
    -DBUILD_opencv_python3=ON ^
    -DPYTHON3_EXECUTABLE="C:/Program Files/Python312/python.exe" ^
    -DPYTHON3_INCLUDE_DIR="C:/Program Files/Python312/include" ^
    -DPYTHON3_LIBRARY="C:/Program Files/Python312/libs/python312.lib" ^
    -DPYTHON3_NUMPY_INCLUDE_DIRS="C:/Program Files/Python312/lib/site-packages/numpy/_core/include" ^
    -DBUILD_EXAMPLES=ON ^
    -DWITH_OPENGL=ON ^
    -DOPENCV_ENABLE_NONFREE=OFF ^
    -DCMAKE_INSTALL_PREFIX="C:/opencv" ^
    -DBLAS_openblas_LIBRARY="%OpenBLAS_ROOT%\lib\openblas.lib" ^
    -DGlog_DIR="%GLOG_ROOT%" ^
    -DGLOG_LIBRARY="%GLOG_ROOT%\lib\glog.lib" ^
    -DGLOG_INCLUDE_DIR="%GLOG_ROOT%\include" ^
    -DGflags_DIR="%GFLAGS_ROOT%" ^
    -DCeres_DIR="%CERES_ROOT%" ^
    -DMETIS_INCLUDE_DIR="%SUITESPARSE_ROOT%\include" ^
    -DCXSparse_INCLUDE_DIR="%SUITESPARSE_ROOT%\include\suitesparse" ^
    -DCXSparse_LIBRARY="%SUITESPARSE_ROOT%\lib\libcxsparse.lib" ^
    -DSuiteSparse_AMD_INCLUDE_DIR="%SUITESPARSE_ROOT%\include\suitesparse" ^
    -DSuiteSparse_CAMD_INCLUDE_DIR="%SUITESPARSE_ROOT%\include\suitesparse" ^
    -DSuiteSparse_CCOLAMD_INCLUDE_DIR="%SUITESPARSE_ROOT%\include\suitesparse" ^
    -DSuiteSparse_CHOLMOD_INCLUDE_DIR="%SUITESPARSE_ROOT%\include\suitesparse" ^
    -DSuiteSparse_COLAMD_INCLUDE_DIR="%SUITESPARSE_ROOT%\include\suitesparse" ^
    -DSuiteSparse_Config_INCLUDE_DIR="%SUITESPARSE_ROOT%\include\suitesparse" ^
    -DSuiteSparse_SPQR_INCLUDE_DIR="%SUITESPARSE_ROOT%\include\suitesparse" ^
    -DSuiteSparse_AMD_LIBRARY="%SUITESPARSE_ROOT%\lib\libamd.lib" ^
    -DSuiteSparse_CAMD_LIBRARY="%SUITESPARSE_ROOT%\lib\libcamd.lib" ^
    -DSuiteSparse_CCOLAMD_LIBRARY="%SUITESPARSE_ROOT%\lib\libccolamd.lib" ^
    -DSuiteSparse_CHOLMOD_LIBRARY="%SUITESPARSE_ROOT%\lib\libcholmod.lib" ^
    -DSuiteSparse_COLAMD_LIBRARY="%SUITESPARSE_ROOT%\lib\libcolamd.lib" ^
    -DSuiteSparse_Config_LIBRARY="%SUITESPARSE_ROOT%\lib\suitesparseconfig.lib" ^
    -DSuiteSparse_SPQR_LIBRARY="%SUITESPARSE_ROOT%\lib\libspqr.lib" ^
    -DINSTALL_TESTS=ON ^
    -DINSTALL_C_EXAMPLES=ON ^
    -DINSTALL_BIN_EXAMPLES=ON ^
    -DINSTALL_PYTHON_EXAMPLES=ON
    
    cmake でのオプションの調整について
    • NVIDIA CUDA ツールキット, NVIDIA cuDNN の設定例

      上の cmake のオプションに,次を付け加えることが考えられる.

      -DCUDA_FAST_MATH=ON ^
      -DWITH_CUBLAS=ON ^
      -DWITH_CUDNN=ON ^
      -DWITH_NVCUVID=ON ^
      -DOPENCV_DNN_CUDA=ON ^
      
    • Intel MKL を使うとき

      * Intel MKL は「w_mkl_2019.4.245.exe」でインストール済み,「C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2019\windows\redist\intel64_win\tbb\vc_mt」にパスが通っているとする.

      上の cmake のオプションに,次を付け加える

      -DWITH_MKL=ON ^
      -DMKL_USE_MULTITHREAD=ON ^
      -DWITH_TBB=ON ^
      -DMKL_WITH_TBB=ON ^
      
    • VTK を使うとき

      上の cmake のオプションに,次を付け加える

      * Windows での VTK のインストール手順は 「Windows で VTK 最新版をソースコードからビルドしてインストールする(Build Tools for Visual Studio を利用)」で説明している.

      -DWITH_VTK=ON ^
      -DVTK_DIR="C:/tools/VTK" ^
      
    • OpenNI2 を使うとき

      上の cmake のオプションに,次を付け加える

      * Windows でのインストール手順は 「Windows で libPCL 1.9.0, Boost, Eigen, OpenNI 2.2, NITE2 のインストール」で説明している.

      -DWITH_OPENNI2=ON ^
      -DOPENNI2_INCLUDE="C:/Program Files/OpenNI2/include" ^
      -DOPENNI2_LIB="C:/Program Files/OpenNI2/lib" ^
      -DOPENNI2_REDIST="C:/Program Files/OpenNI2/Redist" ^
      
    • OpenBLAS を使うとき

      上の cmake のオプションに,次を付け加える

      Windows での OpenBLAS (BLAS, CBLAS, LAPACK, LAPACKE)のインストール(ソースコードを使用)(Build Tools for Visual Studio を利用): 別ページ »で説明

      -DOpenBLAS_LIB="%OpenBLAS_ROOT%\lib\openblas.lib" ^
      -DOpenBLAS_INCLUDE_DIR="%OpenBLAS_ROOT%\include\openblas" ^
      -DWITH_LAPACK=ON ^
      -DLAPACK_LIBRARIES="C:/tools/lapack-release/lib/lapack.lib" ^
      -DLAPACK_INCLUDE_DIR="C:/tools/lapack-release/CBLAS/include" ^
      -DLAPACK_CBLAS_H="C:/tools/lapack-release/CBLAS/include/cblas.h" ^
      
  9. cmake の実行結果の確認

    Python 3 のところが自動設定される(Python 3 を使わない場合は無視してよい)

    * 下図の通りになるとは限らない.

    * エラーメッセージが出た場合は,設定を変えてやり直す
  10. ソースコードからビルドし,インストールする

    終了までしばらく待つ.

    cmake --build . --config Release --target INSTALL -- /m:4
    
  11. 結果の確認

    エラーがなければインストールは完了している.エラーメッセージが出ていないことを確認する.

    * 黄色の警告メッセージは無視してよい

  12. Windowsシステム環境変数 Pathに次を追加し,パスを通す
    • C:\opencv\x64\vc18\bin を追加
    • C:\opencv\bin を追加

    Build Tools 2026 の場合は「vc18」、Build Tools 2022 の場合は「vc17」になる。

    Windows で,管理者権限コマンドプロンプトを起動(手順:Windowsキーまたはスタートメニュー > cmd と入力 > 右クリック > 「管理者として実行」)。

    次のコマンドを実行

    powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";C:\opencv\x64\vc18\bin\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")"
    powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";C:\opencv\bin\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")"
    
  13. Windowsシステム環境変数 LIB の設定

    次を追加する

    C:\opencv\x64\vc18\lib

    Windows で,管理者権限コマンドプロンプトを起動(手順:Windowsキーまたはスタートメニュー > cmd と入力 > 右クリック > 「管理者として実行」)。

    次のコマンドを実行

    powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"LIB\", \"Machine\"); $oldpath += \";C:\opencv\x64\vc18\lib\"; [System.Environment]::SetEnvironmentVariable(\"LIB\", $oldpath, \"Machine\")"
    
  14. Windowsシステム環境変数 OPENCV_ROOTc:\opencv を設定

    Windows で,管理者権限コマンドプロンプトを起動(手順:Windowsキーまたはスタートメニュー > cmd と入力 > 右クリック > 「管理者として実行」)。

    次のコマンドを実行

    powershell -command "[System.Environment]::SetEnvironmentVariable(\"OPENCV_ROOT\", \"c:\opencv\", \"Machine\")"
    
  15. Python 関係のファイルがインストールされていることを確認

    Python312」のところは,実際の Python インストールディレクトリに読み替えること.

    dir "C:\Program Files\Python312\lib\site-packages\cv2"
    
    * Python 関係のファイルがインストールされていない場合でも,Python ローダ (python loader) の使用は推奨しない.Python ローダを使用するとエラー発生時にPython のインストールからやり直す可能性がある.よく理解せずに実行するのは避けること.
  16. Python でOpenCV のバージョン確認
    python -c "import cv2; print( cv2.__version__ )"
    

OpenCV を用いた画像表示の例

OpenCV で画像表示を行う C++ プログラム

  1. エディタを起動

    ここではメモ帳 (notepad) を使っている.

    次のコマンドをVisual Studio の x64 Native Tools コマンドプロンプト (x64 Native Tools Command Prompt) で実行する(Windows のスタートメニューで起動できる).ファイル名は a.cpp とする.

    cd /d c:%HOMEPATH%
    notepad a.cpp
    
  2. メモ帳で開いたファイルを次のように編集する(コピー&ペーストしてよい). ファイル名 a.cpp で保存する.
    #include<opencv2/opencv.hpp>
    
    int main (int argc, char *argv[])
    {
      cv::Mat bgr = cv::imread("c:/opencv/sources/samples/data/fruits.jpg");
      cv::imshow("", bgr);
      cv::waitKey(0);
      cv::destroyAllWindows();
    
      return 0;
    }
    
  3. 次のコマンドをVisual Studio の x64 Native Tools コマンドプロンプト (x64 Native Tools Command Prompt) で実行する(Windows のスタートメニューで起動できる).
    * opencv_world4140.lib のファイル名はインストールした OpenCV のバージョンにより異なる.バージョン 4.14.0 の場合は opencv_world4140.lib となる.実際のファイル名は C:\opencv\x64\vc18\lib ディレクトリ内で確認すること.
    cl /I"c:\opencv\include" a.cpp /link /LIBPATH:"c:\opencv\x64\vc18\lib" opencv_world4140.lib
    .\a.exe
    
  4. 画像が表示される.画面をクリックし,何かのキーを押して閉じる.