0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OpencvをVScodeを用いてC++で使う

Last updated at Posted at 2024-04-11

1. 前書き

opencvは画像処理を簡単に行うことが出来る非常に便利なライブラリである。またカメラを用いたリアルタイム処理も行える。しかしこれをpythonで使うと実行速度などの面で不自由もある。そこで今回はC++でopencvを使うための環境を整えていく。このような記事は他にも沢山あるが筆者は上手くいかずに嵌ってしまったのでここに残しておく。

pc:
os:windows10
必要なもの
opencv
vscode
minGW
visualstudio
CMake

2. 手順

  1. opencvをこちらからダウンロードして適当な場所に展開する
  2. vscode、visualstudioをこちらからインストーラをダウンロードしてそこからインストールする
  3. minGWをインストーラからダウンロードする
  4. CMakeをダウンロードする
  5. VScodeの拡張機能であるCMaketoolsをインストールする
  6. 環境変数のPATHに以下のパスを通す
C:\opencv\build\x64\vc16\bin
C:\opencv\build\x64\vc16\lib
C:\Program Files\CMake\bin
C:\Program Files\CMake
C:\MinGW\bin
C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin

3. CMakeListsの書き方

このままVScodeで

#include <opencv2/opencv.hpp>

このように書いても赤い波線が引かれる。そこでincludeパスに含めることでこれを解決する。
そしたらこのmainファイルと同じ階層にCMakeLists.txtを作成する。その内容は以下のように記述される。

CMakeLists.txt
cmake_minimum_required(VERSION 3.5)
project(プロジェクト名)

# specify the C++ standard
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)

# find OpenCV library
find_package(OpenCV REQUIRED)

# include OpenCV directories
include_directories(${OpenCV_INCLUDE_DIRS})

# add your source file
add_executable(プロジェクト名 ファイル名)

# link OpenCV libraries
target_link_libraries(プロジェクト名 ${OpenCV_LIBS})

4. ビルドして実行する

ここまで出来たらターミナルを開いて書きコマンドを実行していく

mkdir build
cd build
cmake ..
msbuild プロジェクト名.vcxproj/p:Configuration = Release

最後に以下のコマンドでプログラムを実行する

cd Release
.\プロジェクト名.exe

5. 最後に

今回はC++でopencvを使えるようにしました。この手順はさまざまなやり方で成功している人がいるのでそのうちの一つとしてみていただけると幸いです。それではまた次回会いましょう。

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?