OpenCV 4.2 のインストール(Windows 上)

Windows で,OpenCV 最新版をソースコードからビルドして,インストールする手順をスクリーンショット等で説明する. OpenCV (Open Computer Vision Library) は, 実時間コンピュータビジョン (real time computer vision) の アルゴリズムと文書とサンプルコードの集まり.GPU を利用するように設定する手順も説明する. NVIDIA CUDA ツールキット は,NVIDIA社が提供する GPU 用のツールキットである.GPU を用いた演算のプログラム作成や動作のための各種機能を備えている.ディープラーニングでも利用されている. NVIDIA 社のグラフィックス・カードが持つ GPU の機能を使うとき,NVIDIA CUDA ツールキット を利用することができる.
GPU は,グラフィックス・プロセッシング・ユニットの略で、コンピュータグラフィックス関連の機能,乗算や加算の並列処理の機能などがある.

サイト内の関連ページ

謝辞

OpenCV の作者に感謝します

OpenCV 4.2 Windows版のダウンロードとインストール

  1. GitHub の OpenCV の Webページを開く

    https://github.com/opencv/opencv/releases

  2. バージョンを選ぶ

    OpenCV 4.2 系列が欲しい場合は, OpenCV 4.2 系列の「Assets」を展開.

    他のバージョンを選んだ場合でも,これ以降のインストール手順はほぼ同じになる
  3. Windows 版が欲しいので「opencv- ... -vc14_vc15.exe」というような名前のファイルを選ぶ.
  4. ダウンロードが始まる
  5. ダウンロードした .exe ファイルを実行する
  6. 展開(解凍)先は既定(デフォルト)のままでよい.「Extract」をクリック
  7. 展開(解凍)が終わると「opencv」というディレクトリができ,その中にファイルができるので確認する
  8. 展開してできたディレクトリを, 分かりやすいディレクトリの下に移す
    ここでは,「c:\tools」というディレクトリを作り,そこに移すことにしている. ディレクトリ名は何でも良いが,分かりやすくて,日本語を含まないものがよい

    Windows のコマンドプロンプトを開き,次を実行

    mkdir c:\tools
    
  9. c:\tools」の下に,先ほどできた「opencv」をコピーする
  10. Windowsシステム環境変数 Pathに,c:\opencv\build\bin, c:\opencv\build\x64\vc15\bin追加することにより,パスを通す

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

    次のコマンドを実行

    powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";c:\opencv\build\bin\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")"
    powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";c:\opencv\build\x64\vc15\bin\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")"
    
  11. Windowsシステム環境変数 OPENCV_DIR に,c:\opencv\build を設定

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

    次のコマンドを実行

    powershell -command "[System.Environment]::SetEnvironmentVariable(\"OPENCV_DIR\", \"c:\opencv\build\", \"Machine\")"
    
  12. opencv_version, opencv_createsamples にパスが通っていることを確認する

    そのために,新しく Windowsコマンドプロンプトを開き,次のコマンドを実行する.

    エラーメッセージが出なければOK.

    where opencv_version
    

Python で試用する

注意: Python で OpenCV を使うときは,pip でのインストールが良い.それは簡単に行うことができる.

ここでは,「最新の OpenCV を試したい」などのときに役立つと考えて, .pyd ファイルをコピーして使う方法を説明している.が, pip の管理外のファイルを使うことになるので,あとで混乱が生じる可能性がある. 試用が終わったら消すことを検討すること.

  1. Python 3 の場所を調べる

    %LOCALAPPDATA%\Programs\Python\Python37\Python.exe」のように表示される.複数表示されたときは,表示の一番上を使う.この結果は,あとの設定で使う.

    where python
    
  2. OpenCV の Python 用のファイルがあるディレクトリに,カレントディレクトリを移動する操作

    python-3.7」のところは,使用している Python のバージョンに合わせること.

    cd c:\opencv\build\python\cv2
    cd python-3.7
    
  3. ファイルを確認
    dir /w
    
  4. ファイルを lib\site-packages 下にコピー
    %LOCALAPPDATA%\Programs\Python\Python37」のところは,「Python 3 の場所を調べる」で調べたディレクトリに置き換えること.
    copy *.pyd %LOCALAPPDATA%\Programs\Python\Python37\lib\site-packages
    
  5. OpenCV のサンプル画像 fruits.jpg のダウンロード
    画像ファイル fruits.jpg のダウンロード手順は,別ページ »で説明
    https://github.com/opencv/opencv/tree/master/samples/data で公開されている fruits.jpg を使用している
  6. Pythonの画像表示プログラム

    Python 3.12 のインストール

    Pythonのインストールを行い、Pythonのプログラムを実行する環境を整える。扱う環境は、Windows搭載パソコンである。金子研究室では、Python 3.12.10を推奨する。

    [Windows での Python 3.12 のインストール手順を見るには、ここをクリック]

    Windows での Python 3.12 のインストール

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

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

    インストールコマンドの実行方法

    管理者権限コマンドプロンプトを起動する(手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。そして、コマンド全体をコマンドプロンプトにコピー&ペーストする。

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

    REM Python 3.12 をシステム領域にインストール
    winget install --id Python.Python.3.12 -e --scope machine --silent --accept-source-agreements --accept-package-agreements --override "/quiet InstallAllUsers=1 PrependPath=1 Include_test=0 Include_pip=1 Include_launcher=1 InstallLauncherAllUsers=1 TargetDir=\"C:\Program Files\Python312\""
    
    REM Python と Scripts を PATH 先頭に追加
    powershell -NoProfile -Command "$p='C:\Program Files\Python312'; $s=\"$p\Scripts\"; $c=[Environment]::GetEnvironmentVariable('Path','Machine'); if((Test-Path $p) -and (';'+$c+';' -notlike \"*;$p;*\") -and (';'+$c+';' -notlike \"*;$s;*\")){[Environment]::SetEnvironmentVariable('Path',\"$p;$s;$c\",'Machine')}"
    

    方法 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' は、内部コマンドまたは外部コマンドとして認識されていません。」と表示される場合は、インストールが正常に完了していない。

    Python の開発環境 Visual Studio Code のインストールと Python 用の設定

    Python の開発環境Visual Studio Code(プログラムを編集するソフトウェア。以下、VS Code)を整える。

    [Windows での Visual Studio Code のインストールと Python 用の設定手順を見るには、ここをクリック]

    Windows での Visual Studio Code のインストールと Python 用の設定手順

    1. VS Code と拡張機能のインストール

    以下のコマンドにより,既存の VS Code を削除し,全ユーザー共有の設定で再インストールしたうえで,拡張機能(VS Code に機能を追加するソフトウェア)をまとめて導入する.

    インストールコマンドの実行方法

    管理者権限コマンドプロンプトを起動する(手順:Windows キーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。そして,コマンド全体をコマンドプロンプトにコピー&ペーストする。

    インストールコマンド

    
    REM ============================================================
    REM Microsoft Visual Studio Code
    REM ============================================================
    winget uninstall -e --id Microsoft.VisualStudioCode --silent --disable-interactivity --accept-source-agreements
    rmdir /s /q C:\ProgramData\vscode-extensions 2>nul
    rmdir /s /q "%APPDATA%\Code" 2>nul
    rmdir /s /q "%USERPROFILE%\.vscode" 2>nul
    rmdir /s /q "%LOCALAPPDATA%\Microsoft\vscode-update" 2>nul
    
    REM VS Code をシステム領域に新規インストール
    winget install --scope machine --id Microsoft.VisualStudioCode -e --silent --accept-source-agreements --accept-package-agreements
    
    REM 全ユーザー共有の拡張機能フォルダ
    mkdir C:\ProgramData\vscode-extensions 2>nul
    icacls "C:\ProgramData\vscode-extensions" /grant "Everyone:(OI)(CI)M" /T
    
    REM スタートメニューのショートカットを --extensions-dir 付きで再作成
    rmdir /s /q "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Visual Studio Code" 2>nul
    del "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Visual Studio Code.lnk" 2>nul
    powershell -NoProfile -Command "$s=New-Object -ComObject WScript.Shell; $lnk=$s.CreateShortcut('C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Visual Studio Code.lnk'); $lnk.TargetPath='C:\Program Files\Microsoft VS Code\Code.exe'; $lnk.Arguments='--extensions-dir \"C:\ProgramData\vscode-extensions\"'; $lnk.Save()"
    REM ショートカットの検証
    powershell -NoProfile -Command "$s=New-Object -ComObject WScript.Shell; $lnk=$s.CreateShortcut('C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Visual Studio Code.lnk'); Write-Host 'TargetPath:' $lnk.TargetPath; Write-Host 'Arguments:' $lnk.Arguments"
    
    REM ファイル / フォルダ右クリックの「Code で開く」を登録
    reg add "HKLM\SOFTWARE\Classes\*\shell\VSCode\command" /ve /d "\"C:\Program Files\Microsoft VS Code\Code.exe\" --extensions-dir \"C:\ProgramData\vscode-extensions\" \"%1\"" /f
    reg add "HKLM\SOFTWARE\Classes\Directory\shell\VSCode\command" /ve /d "\"C:\Program Files\Microsoft VS Code\Code.exe\" --extensions-dir \"C:\ProgramData\vscode-extensions\" \"%1\"" /f
    reg add "HKLM\SOFTWARE\Classes\Directory\Background\shell\VSCode\command" /ve /d "\"C:\Program Files\Microsoft VS Code\Code.exe\" --extensions-dir \"C:\ProgramData\vscode-extensions\" \"%V\"" /f
    
    REM --extensions-dir 付きで起動する code.cmd ラッパを作成
    REM (%* を echo で書くと対話的 cmd で失われるため、PowerShell で [char]37+'*' を書き出す)
    powershell -NoProfile -Command "$pct=[char]37; $q=[char]34; $c='@echo off'+[char]13+[char]10+$q+'C:\Program Files\Microsoft VS Code\bin\code.cmd'+$q+' --extensions-dir '+$q+'C:\ProgramData\vscode-extensions'+$q+' '+$pct+'*'+[char]13+[char]10; [IO.File]::WriteAllText('C:\ProgramData\vscode-extensions\vscode.cmd',$c,[Text.Encoding]::ASCII)"
    
    REM 拡張機能のインストール
    set "CODE=C:\Program Files\Microsoft VS Code\bin\code.cmd"
    "%CODE%" --extensions-dir "C:\ProgramData\vscode-extensions" --uninstall-extension GitHub.copilot
    "%CODE%" --extensions-dir "C:\ProgramData\vscode-extensions" --uninstall-extension GitHub.copilot-chat
    "%CODE%" --extensions-dir "C:\ProgramData\vscode-extensions" --install-extension ms-python.python
    "%CODE%" --extensions-dir "C:\ProgramData\vscode-extensions" --install-extension ms-python.vscode-pylance
    "%CODE%" --extensions-dir "C:\ProgramData\vscode-extensions" --install-extension ms-python.debugpy
    "%CODE%" --extensions-dir "C:\ProgramData\vscode-extensions" --install-extension MS-CEINTL.vscode-language-pack-ja
    "%CODE%" --extensions-dir "C:\ProgramData\vscode-extensions" --install-extension saoudrizwan.claude-dev
    "%CODE%" --extensions-dir "C:\ProgramData\vscode-extensions" --install-extension rust-lang.rust-analyzer
    "%CODE%" --extensions-dir "C:\ProgramData\vscode-extensions" --install-extension tamasfe.even-better-toml
    "%CODE%" --extensions-dir "C:\ProgramData\vscode-extensions" --install-extension anthropic.claude-code
    "%CODE%" --extensions-dir "C:\ProgramData\vscode-extensions" --install-extension almenon.arepl
    "%CODE%" --extensions-dir "C:\ProgramData\vscode-extensions" --list-extensions --show-versions
    echo === セットアップ完了 ===
    

    2. Python インタプリタの選択

    同一マシンに複数の Python がインストールされている場合,VS Code で使用する Python 本体(インタプリタ:Python プログラムを解釈・実行するソフトウェア)を選択する必要がある.

    1. コマンドパレット(コマンド名で機能を呼び出す VS Code の入力欄)を開く(Ctrl+Shift+P
    2. Python: Select Interpreter と入力する
    3. 表示される一覧から,使用する Python(例:C:\Program Files\Python312\python.exe)を選択する.
    -------
    import cv2
    bgr = cv2.imread('fruits.jpg')
    cv2.imshow("", bgr)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    

    画像が表示されるので確認. このあと,ウインドウの右上の「x」をクリックしない.画面の中をクリックしてから,何かのキーを押して閉じる