| |
| 原著者 | 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ターミナル
- 覚え書き
- このビルドには
MSYS、MinGW64、CLANG64のシェルを使用しないこと。
ステップ1: MSYS2の更新
MSYS2 UCRT64ターミナルを開き、システムを更新する。
プロンプトが表示されたらターミナルを再起動する。
ステップ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に追加する:
ステップ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をコンパイルする。
- 覚え書き
- メモリ制限によりビルドが失敗する場合は、ジョブ数を減らす。
例:
ステップ7: OpenCVのインストール
コンパイルしたライブラリをインストールする。
インストール後、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>
{
std::cout <<
"OpenCV Version: " <<
CV_VERSION << std::endl;
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
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
- 覚え書き
- すべてが正しく構成されていれば、空白の画像を表示するウィンドウが現れるはずである。
Visual Studio CodeでのOpenCVの使用
VS Codeに以下の拡張機能をインストールする:
VS Codeでプロジェクトフォルダを開く。
CMakeを用いてプロジェクトを構成する。
cmake -G "MinGW Makefiles" ..
プロジェクトをビルドする。
実行ファイルを実行する。
トラブルシューティング
CMakeがOpenCVを見つけられない
OpenCV_DIRが正しく設定されていることを確認する。
例:
set(OpenCV_DIR "C:/path/to/opencv/build/install/lib/cmake/opencv4")
mingw32-makeが見つからない
次のパスがWindows環境変数PATHに追加されていることを確認する: C:\msys64\ucrt64\bin
メモリ制限によりビルドが失敗する
並列ビルドのジョブ数を減らす。
まとめ
MSYS2 UCRT64を用いてソースからOpenCVを正常にビルドし、VS CodeでのC++プロジェクトで動作を検証できた。
この構成により、Windows上で完全にオープンソースのツールチェーンを使って、OpenCVベースのC++アプリケーションを開発できる。