OpenCV 環境構築 最短ガイド【C++/Windows・macOS・Linux】

OpenCV for C++
📌 準備: OpenCV の環境構築がまだの方はこちら → C++ 環境構築ガイド / C#(OpenCvSharp)セットアップ

OpenCV 環境構築 最短ガイド【C++/Windows・macOS・Linux】

OpenCV を C++ で使い始めるとき、最初のハードルは「環境構築」です。Python なら pip install opencv-python で終わりますが、C++ はプラットフォームごとにビルドシステムとの連携が必要で、情報も散在しています。

この記事では Windows・macOS・Linux それぞれの最短セットアップ手順を整理します。読み終えると、任意のプラットフォームで OpenCV の C++ プログラムをコンパイル・実行できる状態になります。


前提環境

項目 Windows macOS Linux
OS Windows 10 / 11 macOS 13 以降 Ubuntu 現行 LTS
コンパイラ Visual Studio 2022 (MSVC) Apple Clang(Xcode CLI Tools) GCC 11 以降
ビルドツール CMake 3.20 以上 CMake 3.20 以上 CMake 3.20 以上
OpenCV 4.x 最新安定版 4.x 最新安定版 4.x 最新安定版

OpenCV のバージョンは本記事執筆時点(2026-08)の 4.x 系を対象としています。


Windows:ビルド済みパッケージを使う

Windows では OpenCV 公式が配布しているインストーラ(ビルド済みバイナリ)を使うのが最短です。CMake からソースビルドするより格段に手間が省けます。

手順

  1. OpenCV 公式 Releases ページ から Windows 向けインストーラ(.exe)をダウンロードします。
  2. インストーラを実行し、展開先を決めます。ここでは C:\opencv に展開したとします。
  3. システム環境変数 Path に以下を追加します。
C:\opencv\build\x64\vc17\bin
  1. Visual Studio 2022 でプロジェクトを作成し、プロジェクトのプロパティを設定します。

追加のインクルードディレクトリ(C/C++ → 全般):

C:\opencv\build\include

追加のライブラリディレクトリ(リンカー → 全般):

C:\opencv\build\x64\vc17\lib

追加の依存ファイル(リンカー → 入力)—Debug 構成の例:

opencv_world4xx0d.lib

Release 構成:

opencv_world4xx0.lib

4xx の部分は実際のバージョン番号に合わせてください(例: 4100 など)。d サフィックスが Debug 用です。

  1. ビルドして動作確認(後述の確認コードを使用)。

macOS:Homebrew で一発インストール

macOS では Homebrew が最も簡単です。OpenCV 4 系を入れるには opencv@4 を指定します。

手順

# Homebrew 自体がまだなければ公式サイトを参照してインストール
brew install opencv@4
export PKG_CONFIG_PATH="$(brew --prefix opencv@4)/lib/pkgconfig:$PKG_CONFIG_PATH"

インストール後、pkg-config でパスが通っているか確認します。

pkg-config --modversion opencv4

バージョン番号(2026年9月時点では 4.14.0)が表示されれば成功です。export の行は ~/.zshrc に追記しておきます。

⚠️ brew install opencv(@4 なし)だと、2026年9月時点では OpenCV 5.0.0 が入ります。 5 系の pkg-config 名は opencv5 なので、pkg-config --modversion opencv4 は「見つからない」と返ります。opencv@4 は keg-only(/opt/homebrew 直下にリンクされない)なので、上のように PKG_CONFIG_PATH を通します。5 系をそのまま使う場合は、コマンドの opencv4 を opencv5 に読み替えてください。

コンパイル例:

g++ -std=c++17 main.cpp $(pkg-config --cflags --libs opencv4) -o main

Linux(Ubuntu 系):apt または ソースビルド

apt で素早くインストール

sudo apt update
sudo apt install libopencv-dev

インストールされるバージョンは Ubuntu のリポジトリに依存します。最新の 4.x が必要な場合は後述のソースビルドを選んでください。

インストール後の確認:

pkg-config --modversion opencv4

コンパイル例(macOS と同じ):

g++ -std=c++17 main.cpp $(pkg-config --cflags --libs opencv4) -o main

opencv_contrib を含むソースビルドが必要な場合

contrib(追加モジュール)が必要でも、すぐにソースビルドが要るとは限りません。Ubuntu 24.04 の apt 版(4.6.0)は aruco・face・ximgproc など多くの contrib を含み、macOS の Homebrew opencv@4 は nonfree 込みで contrib を含みます。apt 版に無いのは xfeatures2d(SURF など)です。なお SIFT は OpenCV 4.4 以降、本体で使えます。

SURF などを使いたい場合や、特定のバージョンに揃えたい場合はソースビルドします。


動作確認

環境が正しく構築できたか、以下のプログラムで確認します。画像の読み込みと表示、および OpenCV のビルド情報出力を行います。

⚠️ sample.jpg は実在する画像ファイルに置き換えてください。

#include <opencv2/opencv.hpp>
#include <iostream>

int main()
{
    // OpenCV のビルド情報を出力(バージョン・有効モジュールの確認に便利)
    std::cout << cv::getBuildInformation() << std::endl;

    // 画像を読み込む(カラー)
    cv::Mat img = cv::imread("sample.jpg", cv::IMREAD_COLOR);
    if (img.empty()) {
        std::cerr << "画像を読み込めませんでした。パスを確認してください。" << std::endl;
        return 1;
    }

    std::cout << "画像サイズ: " << img.cols << " x " << img.rows
              << "  チャンネル数: " << img.channels() << std::endl;

    // 画像をウィンドウに表示
    cv::imshow("確認用ウィンドウ", img);
    cv::waitKey(0); // キー入力待ち

    return 0;
}

実行すると ターミナルに OpenCV のビルド情報(バージョン・有効なモジュール・コンパイラ情報など)と画像の縦横サイズ・チャンネル数が表示され、ウィンドウに画像が描画されます。任意のキーを押すとウィンドウが閉じてプログラムが終了します。

出力例(ターミナル):

General configuration for OpenCV 4.x.x ...
  Version control: ...

画像サイズ: 1920 x 1080  チャンネル数: 3

つまずきポイント

⚠️ Windows で Debug/Release の .lib を取り違える

Visual Studio でよく発生するのが LNK2019: 外部シンボルを解決できない エラーです。多くの場合、Debug 構成に opencv_world4xx0.lib(Release 用)を指定している、またはその逆が原因です。Debug には d サフィックス付き、Release には d なしを設定してください。ソリューション構成ごとにライブラリを切り替えるのがポイントです。

⚠️ imread が空の Mat を返す

img.empty() が true になる場合のチェックリストです。

  • パスが間違っている: 作業ディレクトリ(カレントディレクトリ)は実行ファイルの場所とは異なる場合があります。絶対パスで試してください。
  • 日本語・スペースを含むパス: Windows の MSVC 環境では日本語パスを含むと cv::imread が失敗することがあります。パスに日本語やスペースを使わない場所に画像を置くか、cv::imdecode と std::ifstream の組み合わせを使う回避策があります。
  • 対応していない拡張子: .webp など環境によってはデコーダが含まれていない場合があります。.jpg や .png で試してください。

⚠️ pkg-config で opencv4 が見つからない

原因は主に3つです。

  • macOS で brew install opencv を入れた: 5 系が入っており、pkg-config 名は opencv5 です。4 系を使うなら opencv@4 を入れて PKG_CONFIG_PATH を通します(上の macOS の手順)。
  • ソースビルドで opencv4.pc が作られていない: OpenCV 4 系は .pc ファイルを既定で生成しません。CMake に -DOPENCV_GENERATE_PKGCONFIG=ON を付けてビルドし直します。
  • インストール先が検索パスに無い: ソースビルドで /usr/local に入れた場合は、次を ~/.bashrc や ~/.zshrc に追記します。
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

apt インストールの場合は通常不要です。


まとめ

プラットフォーム 推奨方法 コンパイル確認コマンド
Windows 公式インストーラ + VS2022 プロパティ設定 VS でビルド実行
macOS brew install opencv@4 + PKG_CONFIG_PATH pkg-config --modversion opencv4
Linux apt install libopencv-dev / ソースビルド pkg-config --modversion opencv4

環境構築が完了したら、次は実際に OpenCV の各機能を試してみましょう。例えば cv::findContours の使い方【OpenCV/C++】 では、画像から輪郭を検出する実装を C++ の完全なコードで解説しています。cv::warpAffine の使い方【OpenCV/C++】 では回転・平行移動といったアフィン変換の実装例を確認できます。

環境構築でハマったポイントや、記事の不備があればコメントで教えてください。

🛠 画像処理のプロが開発するSDK/API

本ブログを運営するスワローインキュベートは、OpenCV ベースのなりすまし判定SDK/API(C++製・OpenCV 4.10)を開発しています。顔認証システムへの組み込み実績多数。

→ 顔認証のなりすまし対策 設計チェックリスト(当ブログ)
→ なりすまし判定SDK/APIの詳細を見る
→ API仕様書・サンプルコード

タイトルとURLをコピーしました