はじめに
Macで, C++のOpenCV環境の構築方法について簡単にメモしました.
手順
インストール
homebrewでopencvをインストール.
$ brew install opencv
以下のコマンドでバージョンを確認可能.
$ brew list --versions | grep opencv
opencv 4.5.2
VSCodeの設定
VSCodeではIntelliSenseを使うためにc_cpp_properties.jsonのincludePathにOpenCVのパスを設定.
Command+Shift+P でコマンドパレットを開き,「C/Cpp: Edit configurations」 を選択.
今回は以下のように設定.
{
"configurations": [
{
"name": "Mac",
"includePath": [
"${workspaceFolder}/**",
"/usr/local/include/opencv4"
],
"defines": [],
"macFrameworkPath": [],
"compilerPath": "/usr/local/bin/g++",
"cStandard": "gnu17",
"cppStandard": "gnu++14",
"intelliSenseMode": "macos-gcc-x64"
}
],
"version": 4
}
実行テスト
CMakeLists.txtとサンプルコードtest1.cppを作成.ファイル階層は以下のようになっています.
.
├── CMakeLists.txt
├── sample.jpeg
└── test1.cpp
CMakeLists.txtに今回は以下を記述.
cmake_minimum_required(VERSION 3.1)
project (test1)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall")
find_package(OpenCV REQUIRED)
include_directories( ${OpenCV_INCLUDE_DIRS} )
add_executable(Main test1.cpp)
target_link_libraries(Main ${OpenCV_LIBS})
test1.cppには以下を記述.
# include <iostream>
# include <opencv2/opencv.hpp>
int main() {
cv::Mat img = cv::imread("sample.jpeg");
cv::namedWindow("test", cv::WINDOW_AUTOSIZE);
cv::imshow("test", img);
cv::waitKey(0);
cv::destroyWindow("test");
return 0;
}
コンパイルのため,以下のコマンドをterminalで実行して,画像が表示されればokです.
mkdir build
cd build
cmake .. .
make
cd ..
./build/Main
コマンドについて
- 自分のソースコードとcmakeのbuildにより生成されるファイルを分離するために,buildディレクトリを作ってから"cmake .. ."によりCMakeLists.txtを実行.
- "make"によりコンパイルして./Mainを生成.
- 画像ファイルとソースコードと同じ階層で実行する必要があるので, "cd .."で上の階層に移ってから,"./build/Main"を実行.
以下が,今回自分が作成したものとなっています.
作成したプロジェクト