OpenCV 5.0.0
Open Source Computer Vision
読み込み中...
検索中...
見つかりません
🤖 AIによる機械翻訳(非公式) — これは OpenCV 5.0.0 公式リファレンス(英語)を AI (Claude) で自動翻訳したものです。訳に誤りを含む場合があります。正確な情報は 公式英語版(原文) を参照してください。
MSYS2 UCRT64 と VS Code を用いてWindows上でソースコードからOpenCVをビルドする (C++)

原著者Mahadev Kumar
互換性OpenCV >= 4.x
覚え書き
このチュートリアルはMSYS2 UCRT64環境を用いてWindows >= 7 でテストされている。
OpenCVチームはMSYS/Cygwin構成を保守しておらず、継続的インテグレーションによる定期的なテストも行っていない。

はじめに

このチュートリアルでは、MSYS2 UCRT64ツールチェーンを用いてWindows上でソースからOpenCVをビルドし、それをVisual Studio CodeのC++環境内で使用する方法を説明する。

ビルド構成では次のものを使用する:

  • MSYS2 (UCRT64シェル)
  • GCC (UCRTツールチェーン)
  • CMake
  • mingw32-make
  • VS Code

この方法では、Universal C Runtime (UCRT) にリンクされたネイティブWindowsバイナリが生成される。


前提条件

作業を始める前に、以下のソフトウェアをインストールする:

MSYS2のインストール後は、常に次のものを開く:

MSYS2 UCRT64ターミナル

覚え書き
このビルドにはMSYSMinGW64CLANG64のシェルを使用しないこと。

ステップ1: MSYS2の更新

MSYS2 UCRT64ターミナルを開き、システムを更新する。

pacman -Syu

プロンプトが表示されたらターミナルを再起動する。


ステップ2: 必要なパッケージのインストール

必要なコンパイラとビルドツールをインストールする。

pacman -S mingw-w64-ucrt-x86_64-gcc \
mingw-w64-ucrt-x86_64-cmake \
mingw-w64-ucrt-x86_64-make

インストールを検証する:

gcc --version
cmake --version
mingw32-make --version
覚え書き
以下のディレクトリをWindows PATHに追加する:
C:\msys64\ucrt64\bin

ステップ3: OpenCVソースコードのクローン

OpenCVとオプションのcontrib modulesをクローンする。

git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git

ステップ4: ビルドディレクトリの作成

cd opencv
mkdir build
cd build

ステップ5: CMakeによるビルドの構成

MinGW Makefilesジェネレータを用いてCMakeを実行する。

cmake -G "MinGW Makefiles" ../
覚え書き
opencv_contribを使用しない場合は、OPENCV_EXTRA_MODULES_PATHオプションを削除する。

ステップ6: OpenCVのビルド

OpenCVをコンパイルする。

mingw32-make -j6
覚え書き
メモリ制限によりビルドが失敗する場合は、ジョブ数を減らす。

例:

mingw32-make -j4

ステップ7: OpenCVのインストール

コンパイルしたライブラリをインストールする。

mingw32-make install

インストール後、OpenCVは次の場所に配置される: opencv/build/install

以下のディレクトリをWindows PATHに追加する:

C:\path\to\opencv\build\install\x64\mingw\bin

ステップ8: C++サンプルでの検証

  • OpenCVソースディレクトリの外にフォルダを作成する。例: first-project
  • フォルダ内にmain.cppを作成する
#include <opencv2/opencv.hpp>
#include <iostream>
int main()
{
std::cout << "OpenCV Version: " << CV_VERSION << std::endl;
cv::Mat img = cv::Mat::zeros(400, 400, CV_8UC3);
cv::imshow("OpenCV Test", img);
return 0;
}
Comma-separated Matrix Initializer.
Definition mat.hpp:964
static CV_NODISCARD_STD MatExpr zeros(int rows, int cols, int type)
Returns a zero array of the specified size and type.
#define CV_VERSION
Definition version.hpp:19
#define CV_8UC3
Definition interface.h:79
void imshow(const String &winname, InputArray mat)
Displays an image in the specified window.
int waitKey(int delay=0)
Waits for a pressed key.
int main(int argc, char *argv[])
Definition highgui_qt.cpp:3
  • CMakeLists.txtを作成する
cmake_minimum_required(VERSION 3.10)
project(OpenCVApp)
set(OpenCV_DIR "C:/path/to/opencv/build/install/lib/cmake/opencv4")
find_package(OpenCV REQUIRED)
add_executable(app main.cpp)
target_link_libraries(app ${OpenCV_LIBS})
  • プロジェクトをビルドする。
mkdir build && cd build
cmake -G "MinGW Makefiles" ..
mingw32-make
  • プログラムを実行する。
./app.exe
覚え書き
すべてが正しく構成されていれば、空白の画像を表示するウィンドウが現れるはずである。

Visual Studio CodeでのOpenCVの使用

VS Codeに以下の拡張機能をインストールする:

  • C/C++
  • CMake Tools

VS Codeでプロジェクトフォルダを開く。

CMakeを用いてプロジェクトを構成する。

cmake -G "MinGW Makefiles" ..

プロジェクトをビルドする。

mingw32-make

実行ファイルを実行する。


トラブルシューティング

CMakeがOpenCVを見つけられない

OpenCV_DIRが正しく設定されていることを確認する。

例:

set(OpenCV_DIR "C:/path/to/opencv/build/install/lib/cmake/opencv4")

mingw32-makeが見つからない

次のパスがWindows環境変数PATHに追加されていることを確認する: C:\msys64\ucrt64\bin


メモリ制限によりビルドが失敗する

並列ビルドのジョブ数を減らす。

mingw32-make -j2

まとめ

MSYS2 UCRT64を用いてソースからOpenCVを正常にビルドし、VS CodeでのC++プロジェクトで動作を検証できた。

この構成により、Windows上で完全にオープンソースのツールチェーンを使って、OpenCVベースのC++アプリケーションを開発できる。