LoginSignup
15
8

More than 3 years have passed since last update.

はじめに

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"を実行.

以下が,今回自分が作成したものとなっています.
作成したプロジェクト

参考

15
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
8