WindowsとVSCodeでC++版OpenCVの開発環境構築
WindowsでOpenCVの開発を行おうとするとVisual Studioの使用例ばかり出てきますが、使い慣れたVSCodeを使いたかったので、Visual Studioを使わずに開発できる環境を構築していきます。
環境は以下の通りです。
- Windows 11
- OpenCV 4.9
- CMake 3.27
CMakeのインストール
cmake-{version}-windows-x86_64.msi
をダウンロード & インストールしてください。
wingetを使う場合
winget install Kitware.CMake
wingetがない場合は アプリインストーラーをインストールしてください。
ビルドツールのインストール
Build Tools for Visual Studio 2022
をダウンロードしてください。
wingetを使う場合
winget install Microsoft.VisualStudio.2022.BuildTools
ダウンロードしたファイルを実行するとVisual Studio Installerが起動するので、「C++によるデスクトップ開発」を選択後、右の欄から「ビルドツール用C++ ATL」をチェックしてインストールしてください。
OpenCVのインストール
opencv-{version}-windows.exe
をダウンロードしてください。
ダウンロード後、実行するとOpenCVのインストールフォルダを選択する画面になるので、適当なパスを設定します。
ここではCドライブ直下にインストールするものとします。
インストール後、ユーザー環境変数の OpenCV_DIR
に C:\OpenCV\build\x64\vc16
を、 Path
に %OPENCV_DIR%\bin
と %OPENCV_DIR%\lib
を追加してください。
[Environment]::SetEnvironmentVariable("OpenCV_DIR", "C:\OpenCV\build\x64\vc16", "User")
$oldPath = [Environment]::GetEnvironmentVariable("Path", "User")
$newPath = $oldPath + ";%OPENCV_DIR%\bin;%OPENCV_DIR%\lib"
[Environment]::SetEnvironmentVariable("Path", $newPath, "User")
環境変数の設定後、PowerShellを開き直し、 opencv_version
と入力してバージョン情報が出てくればOKです。
ソースコードからビルドする場合は以下の記事で解説しています。
OpenCVを使ってみる
これで環境は整ったのでOpenCVを使ったテストプログラムを作成します。
main.cpp
と CMakeLists.txt
の2つのプログラムを用意します。
#include <opencv2/opencv.hpp>
int main() {
cv::VideoCapture cap(0);
if (!cap.isOpened()) return -1;
cv::Mat frame;
while (cap.read(frame)) {
cv::imshow("test", frame);
const int key = cv::waitKey(1);
if (key == 'q') break;
}
cv::destroyAllWindows();
return 0;
}
WebCamを使わないプログラムの場合
#include <iostream>
#include <opencv2/opencv.hpp>
int main() {
// Windows標準の壁紙を表示
cv::Mat image = cv::imread("C:\\Windows\\Web\\Wallpaper\\Windows\\img0.jpg");
if (image.empty()) {
std::cout << "画像が開けません" << std::endl;
return -1;
}
cv::resize(image, image, cv::Size(), 0.25, 0.25, cv::INTER_AREA);
cv::imshow("test", image);
cv::waitKey(0);
return 0;
}
cmake_minimum_required(VERSION 3.0.0)
project(test VERSION 0.1.0 LANGUAGES CXX)
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(test main.cpp)
target_link_libraries( ${PROJECT_NAME} ${OpenCV_LIBS} )
ビルドします。
cmake . -B build
cmake --build build
build\Debug\test.exe
ウィンドウが表示されれば成功です!
参考文献
Discussion