OpenCV 4.6.0 のインストール,動作確認(Windows 上)
この記事では OpenCV 4.6.0 のインストール手順を説明しています。 現在リリースされている新しいバージョン(例: 4.10.0 など)でも、基本的なインストールや環境設定の手順はほぼ同じです。 ただし、バージョンによって以下の点が異なる場合がありますのでご注意ください。
- ダウンロードするファイル名: opencv-X.X.X-vcXX.exe のバージョン番号 (X.X.X) や対応コンパイラ (vcXX) 部分。
- C++でリンクするライブラリファイル名: opencv_worldXXX.lib の数字 (XXX) 部分。
- 推奨されるVisual Studioのバージョン。
インストールしたいバージョンの正確なファイル名やシステム要件については、必ず OpenCV公式サイトや GitHubリリースページ(https://github.com/opencv/opencv/releases) で最新情報をご確認ください。
【サイト内の OpenCV 関連ページ】
- OpenCV 4.10.0 のインストール,動作確認(Windows 上)
- OpenCV について [PDF] , [パワーポイント]
- OpenCV のインストール,画像表示を行う C++ プログラムの実行手順: 別ページ »で説明
- OpenCVとPythonを活用した画像・ビデオ処理プログラム: 別ページ »にまとめ
- OpenCV 4 の C/C++ プログラム: 別ページ »にまとめている.
【OpenCV の公式情報】
- OpenCV の公式ページ: https://opencv.org
- GitHub の OpenCV のページ: https://github.com/opencv/opencv/releases
OpenCV を用いた C++ プログラム開発のための準備
Build Tools for Visual Studio 2022 のインストール(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 --id Microsoft.VisualStudio.2022.BuildTools --accept-source-agreements --accept-package-agreements ^
--override "--passive --wait --norestart --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended --add Microsoft.VisualStudio.Component.VC.Llvm.Clang --add Microsoft.VisualStudio.ComponentGroup.ClangCL --add Microsoft.VisualStudio.Component.VC.CMake.Project --add Microsoft.VisualStudio.Component.Windows11SDK.26100"
--add で追加されるコンポーネント
上記のコマンドでは,まず Build Tools 本体と Visual C++ 再頒布可能パッケージをインストールし,次に setup.exe を用いて以下のコンポーネントを追加している。
VCTools:C++ デスクトップ開発ワークロード(--includeRecommendedにより、MSVC コンパイラ、C++ AddressSanitizer、vcpkg、CMake ツール、Windows 11 SDK 等の推奨コンポーネントが含まれる)VC.Llvm.Clang:Windows 向け C++ Clang コンパイラClangCL:clang-cl ツールセットを含むコンポーネントグループ(MSBuild から Clang を使用するために必要)VC.CMake.Project:Windows 向け C++ CMake ツールWindows11SDK.26100:Windows 11 SDK(ビルド 10.0.26100)
インストール完了の確認
winget list Microsoft.VisualStudio.2022.BuildTools
上記以外の追加のコンポーネントが必要になった場合は Visual Studio Installer で個別にインストールできる。
Visual Studio の機能を必要とする場合は、追加インストールできる。
OpenCV 4.6.0 Windows版のダウンロードとインストール
- GitHub の OpenCV の Webページを開く
- バージョンを選ぶ
下図では,OpenCV 4.6.0 を選んで, 「Assets」を展開しています.
他のバージョンを選んだ場合でも,これ以降のインストール手順はほぼ同じになります. - Windows 版が欲しいので「opencv-4.6.0-vc14_vc15.exe」というような名前のファイルを選びます.
(補足: `vc14` はVisual Studio 2015、`vc15` はVisual Studio 2017のコンパイラに対応したビルドであることを示します。通常、新しいバージョンのVisual Studio(例: 2019, 2022)でもこれらのバイナリを利用可能です)
- ダウンロードが始まります.
- ダウンロードした .exe ファイルを実行します.これは自己解凍形式のアーカイブです.
- 展開(解凍)先を指定します.既定(デフォルト)の場所でも構いませんが、後で分かりやすい場所に移動することを推奨します.展開(解凍)先は覚えておきます.「Extract」をクリックします.
- 展開(解凍)が終わると,指定した展開(解凍)先に,「opencv」というディレクトリができ,その中にファイル群が生成されるので確認します.
- 展開してできた「opencv」ディレクトリを,開発で使いやすい場所(例: `c:\opencv`)に移動またはコピーします.このパスは後の環境変数設定やプログラムで使用します.
ここでは,「c:\opencv」にファイルを置くことにしています. このパスは任意に変更可能ですが,注意点として,パス名に日本語(全角文字)やスペースが含まれていると、ビルド時などに予期せぬエラーが発生することがあります.できるだけASCII文字のみで構成された短いパス名(例: `c:\tools\opencv` など)を使用することを強く推奨します.
- (環境変数 Path の設定)Windows の システム環境変数 Pathに,OpenCVの実行ファイル(.dllなど)があるディレクトリを追加します.これにより,コマンドプロンプトなどから `opencv_version` コマンドなどを直接実行できるようになります.
ここでは、c:\opencv\build\bin と c:\opencv\build\x64\vc15\bin を追加します.
Windows で,コマンドプロンプトを管理者権限で起動します(例:Windowsキーを押し,「cmd」と入力し,「管理者として実行」を選択).
次の PowerShell コマンドを実行します.
「c:\opencv」の部分は,実際にOpenCVディレクトリを置いたパスに合わせてください.
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\")"(補足: これらのコマンドはシステム環境変数Pathの末尾に指定されたパスを追加します.Windowsの「システムのプロパティ」から「環境変数」設定画面を開き、手動で編集することも可能です.)
- (環境変数 OPENCV_DIR の設定)Windows の システム環境変数 OPENCV_DIR に,OpenCVのビルドディレクトリを設定します.これは,CMakeなどのビルドツールがOpenCVライブラリを見つけるために参照されることがあります.
ここでは、c:\opencv\build を設定します.
Windows で,コマンドプロンプトを管理者権限で起動します(例:Windowsキーを押し,「cmd」と入力し,「管理者として実行」を選択).
次の PowerShell コマンドを実行します.
「c:\opencv\build」の部分は,実際にOpenCVディレクトリを置いた場所に合わせてください.
powershell -command "[System.Environment]::SetEnvironmentVariable(\"OPENCV_DIR\", \"c:\opencv\build\", \"Machine\")"(補足: このコマンドはシステム環境変数OPENCV_DIRを新規作成または上書きします.Windowsの「システムのプロパティ」から「環境変数」設定画面を開き、手動で追加・編集することも可能です.)
- opencv_version コマンドへのパスが通り、正しく実行できるかを確認します.
そのために,**新しく** Windows のコマンドプロンプトを開き(環境変数の変更を反映させるため),次のコマンドを実行します.
まず、`where` コマンドで `opencv_version.exe` の場所が表示されるか確認します(環境変数Pathの設定確認). 次に、`opencv_version` コマンドを実行し、インストールしたバージョン(この例では 4.6.0)が表示されることを確認します.
where opencv_version # 出力例: c:\opencv\build\x64\vc15\bin\opencv_version.exe など opencv_version # 出力例: 4.6.0エラーメッセージが表示されず、上記のようにバージョン番号が表示されれば設定は成功です.
OpenCV を用いた動作確認
OpenCV で画像表示を行う C++ プログラム
**注意:** 以下のコードは、OpenCVの `sources` パッケージに含まれるサンプル画像 `fruits.jpg` を使用します。このファイルが存在しない場合(例: opencv-X.X.X-vc14_vc15.exe のみダウンロードした場合)や、OpenCVを別の場所に展開した場合は、`cv::imread` の引数を適宜修正してください。ご自身で用意した画像ファイルのパスを指定するか、OpenCVのGitHubリポジトリ等から `sources/samples/data` ディレクトリをダウンロードして配置してください。
以下の内容を `a.cpp` というファイル名で保存します.
#include
int main(int argc, char* argv[])
{
// 画像ファイルのパスは環境に合わせて変更してください
cv::Mat bgr = cv::imread("c:/opencv/sources/samples/data/fruits.jpg");
if(bgr.empty()) {
// 画像が読み込めなかった場合の処理
printf("Error: Image not loaded.\n");
return -1;
}
cv::imshow("Image Display", bgr); // ウィンドウタイトルを追加
cv::waitKey(0); // キー入力待ち
cv::destroyAllWindows(); // すべてのウィンドウを閉じる
return 0;
}
(コード例に、画像読み込み失敗時のチェックとウィンドウタイトルを追加しました。)
以下の操作をx64 Native Tools コマンドプロンプト (x64 Native Tools Command Prompt)で実行する
(手順:スタートメニュー →
`a.cpp` を保存したディレクトリ(ここでは例として `C:\opencv\sources\samples\data`)に移動し、次のように実行してコンパイルと実行を行います.
cd C:\opencv\sources\samples\data
notepad a.cpp
cl /I"c:\opencv\build\include" a.cpp /EHsc /link /LIBPATH:"c:\opencv\build\x64\vc15\lib" opencv_world460.lib
.\a.exe
コンパイルコマンド (`cl`) のオプション説明:
- `/I"..."`: インクルードファイル(ヘッダファイル `.hpp`)を探すディレクトリを指定します.`c:\opencv` の部分は実際のパスに合わせます.
- `/EHsc`: C++の例外処理モデルを指定します(一般的に推奨されます).
- `/link`: これ以降はリンカへのオプションです.
- `/LIBPATH:"..."`: ライブラリファイル (`.lib`) を探すディレクトリを指定します.`c:\opencv` の部分は実際のパスに合わせます.`x64\vc15` の部分は、使用するVisual Studioのバージョンやターゲット(32bit/64bit)によって `x64\vc16` や `x86\...` などに変わる場合があります.
- `opencv_world460.lib`: リンクするOpenCVライブラリファイルです.バージョン名(460)が含まれるため、インストールしたOpenCVのバージョンに合わせて変更してください(例: 4.10.0なら `opencv_world4100.lib`).ファイル名は `/LIBPATH` で指定したディレクトリ内で確認できます.
コンパイルが成功すると `a.exe` が生成されます.`.\a.exe` を実行すると画像表示が行われます.表示された画面をクリックし,なにかのキーを押すとウィンドウが閉じます.
OpenCV で画像表示を行う Python プログラム
ここで説明する システムの環境変数 PYTHONPATH を設定する方法 は、pip管理外のOpenCV(例えば、自分でビルドしたものや、このページの手順でダウンロード・展開したもの)を使用したい場合、特に「最新の機能を試したい」などの限定的な状況で役立ちます.ただし、pip でインストールしたパッケージと競合したり、環境管理が複雑になる可能性があるため、通常の使用には推奨されません.試用が終わったら,システムの環境変数 PYTHONPATH の設定を元に戻す(追加したパスを削除する)ことを検討してください.
- Windows で,コマンドプロンプトを管理者権限で起動します(環境変数を設定するため).
- numpy のインストール(OpenCV Python バインディングは NumPy に依存しています)
すでにインストールされている場合は不要ですが、最新版に更新しておくと良いでしょう。
python -m pip install -U numpy
- OpenCV の Python 用のファイルがあるディレクトリを確認します.
通常、`c:\opencv\build\python\cv2\` のようなパスにあります. コマンドプロンプトで、OpenCVを展開したディレクトリ内の `build\python` ディレクトリに移動します.
cd c:\opencv\build\python <-- 「c:\opencv」は実際のパスに合わせる
- そのディレクトリ内に `cv2` という名前のサブディレクトリがあるか確認します.
この `cv2` ディレクトリ内に Python バインディングの実体(例: `cv2.pyd`)が含まれています.
dir /w
- システムの環境変数 PYTHONPATH に、上記で確認した **`cv2` ディレクトリの親ディレクトリ**(この例では `c:\opencv\build\python`)を追加します.
これにより、Pythonインタープリタが `pip` で管理されていない場所にあるOpenCVモジュール(ここではダウンロード・展開した `cv2` モジュール)を見つけられるようになります.
Windows で,コマンドプロンプトを管理者権限で起動します.
次の PowerShell コマンドを実行します.
「c:\opencv\build\python」の部分は,実際の OpenCV の Python バインディングがあるディレクトリの **親ディレクトリ** に合わせてください.
powershell -command "$oldpythonpath = [System.Environment]::GetEnvironmentVariable(\"PYTHONPATH\", \"Machine\"); $oldpythonpath += \";c:\opencv\build\python\"; [System.Environment]::SetEnvironmentVariable(\"PYTHONPATH\", $oldpythonpath, \"Machine\")"(補足: このコマンドはシステム環境変数PYTHONPATHの末尾に指定されたパスを追加します.Windowsの「システムのプロパティ」から「環境変数」設定画面を開き、手動で編集することも可能です.)
- サンプルとして OpenCV のサンプルデータ の中の fruits.jpg を使います.
**注意:** このファイルが存在しない場合(例: `sources` パッケージを含まない .exe を使用した場合)や、OpenCVを別の場所に展開した場合は、後述の Python コード内の `cv2.imread` の引数を適宜修正してください。ご自身で用意した画像ファイルのパスを指定するか、OpenCVのGitHubリポジトリ等から `sources/samples/data` ディレクトリをダウンロードして配置してください。
c:\opencv\sources\samples\data にあると仮定します.
- Python プログラムの実行
環境変数を反映させるために、**新しく** コマンドプロンプトを開いて Python を起動します.
Python プログラムの実行方法:- Windows ではコマンドプロンプトで python と入力します.(Python ランチャーがインストールされていれば py でも可).
- Ubuntu など Linux 環境では python3 と入力することが一般的です.
Python 開発環境(Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, Spyder, PyCharm, PyScripterなど)を使うと、コードの編集や実行がより便利になります.
Python のまとめ: 別ページ »にまとめ
Python インタプリタを起動します:
pythonPython インタプリタ内で、以下のコードを一行ずつ実行します:
import cv2 # 画像ファイルのパスは環境に合わせて変更してください bgr = cv2.imread('c:/opencv/sources/samples/data/fruits.jpg') # 画像が正しく読み込めたか確認 (重要) if bgr is None: print("Error: Could not open or find the image.") else: cv2.imshow("Image Display", bgr) # ウィンドウタイトルを指定 cv2.waitKey(0) # キー入力待ち cv2.destroyAllWindows() # すべてのウィンドウを閉じる(コード例に、画像読み込み失敗時のチェックとウィンドウタイトルを追加しました。)
画像が正しく読み込めていれば、画像が表示されるので確認してください. 表示された画像ウィンドウの中をクリックしてから,何かのキーを押すとウィンドウが閉じます.