OpenCV/C++ 環境構築 最短ガイド【Windows/macOS/Linux】
この記事では、OpenCV を C++ で使い始めるための環境構築を OS 別に説明します。この1本を読み終えた時点で、当ブログのサンプルコードをコンパイルして動かせる状態になることを目標にしています。
opencv_contrib を含むフルビルドは対象外です(別記事で扱います)。まずは「動く環境」を最短で作ることに集中します。
前提環境
| 項目 | バージョン |
|---|---|
| OpenCV | 4.x(記事執筆時点: 4.9 系) |
| C++ 規格 | C++17 |
| Windows | Windows 10/11 + Visual Studio 2022(Community 可) |
| macOS | macOS 12 以降 + Homebrew |
| Ubuntu | 24.04 LTS(26.04 LTS でも同手順) |
OS 別インストール手順
Windows
Windows には大きく2つの方法があります。公式プリビルドバイナリが最も手軽です。
方法1: 公式プリビルドバイナリ + Visual Studio 2022(推奨)
1. インストーラーをダウンロードする
https://opencv.org/releases/ から最新の Windows 向け .exe をダウンロードして実行します。デフォルトでは C:\opencv に展開されます。
2. 環境変数 PATH を通す
展開後のフォルダ構成は以下のようになります。
C:\opencv\
build\
x64\
vc17\
bin\ ← DLL が入っている(PATH に追加する)
lib\ ← .lib ファイル
include\ ← ヘッダ
C:\opencv\build\x64\vc17\bin を システム環境変数の Path に追加してください。追加後はコマンドプロンプトを再起動します。
⚠️ PATH を通し忘れると、ビルドは成功しても実行時に opencv_world4xx.dll が見つかりません というエラーが出ます。
3. Visual Studio 2022 でプロジェクトを設定する
プロジェクトのプロパティで以下を設定します(x64 / Release の構成で揃えること)。
| 設定箇所 | 値 |
|---|---|
| C/C++ → 追加のインクルードディレクトリ | C:\opencv\build\include |
| リンカー → 追加のライブラリディレクトリ | C:\opencv\build\x64\vc17\lib |
| リンカー → 追加の依存ファイル | opencv_world490.lib(バージョンに合わせる) |
Debug ビルドでは opencv_world490d.lib(末尾に d)を使います。Debug/Release の取り違えが最も多いつまずきポイントです。
方法2: vcpkg(パッケージ管理で自動化したい場合)
git clone https://github.com/microsoft/vcpkg
cd vcpkg
bootstrap-vcpkg.bat
vcpkg install opencv4:x64-windows
vcpkg integrate install
integrate install 後は Visual Studio が自動的にインクルードパスとリンク設定を認識します。vcpkg 経由では opencv_world ではなくモジュール別 lib が生成される点に注意してください。
macOS
Homebrew を使います。1コマンドで完了します。
brew install opencv
インストール後、pkg-config が使えることを確認します。
pkg-config --modversion opencv4
バージョン番号(例: 4.9.0)が表示されれば成功です。
Ubuntu 24.04 LTS
apt でインストールします。
sudo apt update
sudo apt install -y libopencv-dev
確認:
pkg-config --modversion opencv4
バージョン番号が表示されれば完了です。Ubuntu 24.04 LTS の apt では OpenCV 4.6 系が入ります(2026年4月リリースの 26.04 LTS でも手順は同じで、より新しい系列が入ります)。apt のバージョンで足りない場合はソースビルドが必要です。
pkg-config とは何か
macOS・Linux のコンパイル例では次の形式をよく使います。
g++ -std=c++17 main.cpp `pkg-config --cflags --libs opencv4`
pkg-config はライブラリのコンパイルフラグを自動展開するツールです。--cflags はインクルードパス(-I/usr/include/opencv4 等)、--libs はリンクフラグ(-lopencv_core -lopencv_imgproc ... 等)をそれぞれ出力します。バッククォートで囲むことでその出力をコンパイル引数に展開しています。
# 実際に展開される内容を確認する
pkg-config --cflags --libs opencv4
このコマンドを実行すると、インクルードパスとリンクフラグの一覧が表示されます。当ブログの全サンプルコードはこの形式でコンパイルできます。
ビルド方法
g++(macOS / Linux)
g++ -std=c++17 main.cpp `pkg-config --cflags --libs opencv4` -o main
./main
CMake(Windows / macOS / Linux 共通)
プロジェクトルートに CMakeLists.txt を作成します。
cmake_minimum_required(VERSION 3.16)
project(opencv_sample CXX)
set(CMAKE_CXX_STANDARD 17)
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(main main.cpp)
target_link_libraries(main ${OpenCV_LIBS})
ビルド手順:
mkdir build && cd build
cmake ..
cmake --build . --config Release
動作確認
画像ファイルを必要としない、最小の確認プログラムです。
#include <iostream>
#include <opencv2/core.hpp>
int main()
{
// OpenCV バージョンを表示する
std::cout << "OpenCV version: " << cv::getVersionString() << std::endl;
// ビルド情報(コンパイルオプション等)を確認したい場合
// std::cout << cv::getBuildInformation() << std::endl;
return 0;
}
実行すると次のように表示されます。
OpenCV version: 4.9.0
バージョン番号は環境によって異なります。数字が表示されれば環境構築は成功です。
つまずきポイント
Windows: DLL が見つからない(実行時エラー)
ビルドが成功しても実行時に「opencv_world4xx.dll が見つかりません」と出る場合、C:\opencv\build\x64\vc17\bin が PATH に追加されていません。PATH 追加後はコマンドプロンプトを再起動してください。再起動しないと変更が反映されません。
代替手段として、DLL を実行ファイルと同じフォルダにコピーする方法もあります。
Windows: Debug/Release・x64/x86 の取り違え
Visual Studio のプロパティ設定はアクティブな構成(Debug/Release)とプラットフォーム(x64/x86)ごとに独立しています。Release 用 .lib を Debug 構成でリンクしようとするとリンクエラーになります。プロパティを開く前に必ず構成セレクターを確認してください。
macOS: pkg-config: command not found
Homebrew で OpenCV をインストールしても pkg-config 自体が入っていない場合があります。
brew install pkg-config
でインストールしてから再度試してください。
opencv_contrib が必要になったら
SIFT・SURF・ArUco など追加モジュールを使う場合は、OpenCV をソースからビルドする必要があります。手順は以下の記事で詳しく解説しています。
→ OpenCV + opencv_contrib を Windows でビルドする完全ガイド【C++/VS2022】
まとめ
| OS | 最短手順 |
|---|---|
| Windows | 公式プリビルド .exe を展開し、PATH と VS プロパティを設定 |
| macOS | brew install opencv のみ |
| Ubuntu | sudo apt install libopencv-dev のみ |
環境が整ったら、次のステップとして画像の読み込みと表示を試してみてください。
→ OpenCV/C++ imread・imshow の使い方 〜画像を読み込んで表示する〜
🛠 画像処理のプロが開発するSDK/API
本ブログを運営するスワローインキュベートは、OpenCV ベースのなりすまし判定SDK/API(C++製・OpenCV 4.10)を開発しています。顔認証システムへの組み込み実績多数。
