VSCode@Ubuntu20.04でOpenCVコードビルド

VSCodeインストール後,OpenCVインストールと簡単な画像表示まで.

OpenCVインストール
https://opencv.org/releases/

$ unzip opencv-4.5.0.zip 
$ cd opencv-4.5.0/
$ mkdir build
$ cd build/
$ cmake ..
$ cmake --build .
$ make -j4
$ sudo make install 
$ sudo ldconfig

cvimshowのために以下が必要だったのでインストール

$ sudo apt-get install libgtk2.0-dev pkg-config

このあと,上の cmake ..からやり直し

VSCode内の設定
#include <opencv2/opencv.hpp> に赤波線が引かれてinclude errors detectedと表示される.
vcpkgをインストールして解決策を探すよう提案されたのでインストールしてみる.
https://docs.microsoft.com/en-us/cpp/build/vcpkg?view=vs-2019

$ git clone https://github.com/microsoft/vcpkg.git
$ cd vcpkg
$ ./bootstrap-vcpkg.sh #以下をインストールするようエラーが出る
$ sudo apt-get install curl unzip tar
$ ./bootstrap-vcpkg.sh

入れてみたものの使い方はまだよくわからない.

c_cpp_properties.jsonの書き換え

{
   "configurations": [
       {
           "name": "Linux",
           "includePath": [
               "${workspaceFolder}/**",
               "/usr/include",
               "/usr/local/include"
           ],
           "defines": [],
           "compilerPath": "/usr/bin/gcc",
           //"cStandard": "gnu18",
           "cStandard": "gnu17",
           "cppStandard": "gnu++14",
           "intelliSenseMode": "gcc-x64",
           "compileCommands": "${workspaceFolder}/build/compile_commands.json",
           "configurationProvider": "ms-vscode.cmake-tools"
       }
   ],
   "version": 4
}


tasks.jsonの書き換え

{
   "tasks": [
       {
           "type": "shell",
           "label": "C/C++: g++ build active file",
           "command": "/usr/bin/g++",
           "args": [
               "-g",
               "${file}",
               "-o",
               "${fileDirname}/${fileBasenameNoExtension}",
               "-I", "/usr/include",
               "-I", "/usr/local/include/opencv4",
               "-l", "opencv_core",
               "-l", "opencv_imgproc",
               "-l", "opencv_imgcodecs",
               "-l", "opencv_video",
               "-l", "opencv_ml",
               "-l", "opencv_highgui",
               "-l", "opencv_objdetect",
               "-l", "opencv_flann",
               "-l", "opencv_imgcodecs",
               "-l", "opencv_photo",
               "-l", "opencv_videoio"
           ],
           "options": {
               "cwd": "${workspaceFolder}"
           },
           "problemMatcher": [
               "$gcc"
           ],
           "group": {
               "kind": "build",
               "isDefault": true
           }
       }
   ],
   "version": "2.0.0"
}

main.cpp (テスト用コード)

#include <iostream>

#include <opencv2/opencv.hpp>

int main(int, char**)
{
   cv::Mat image;
   image = cv::imread("lena.png");
   if (image.empty() == true)
   {
       return 0;
   }
   cv::imshow("image", image);
   cv::waitKey();
   return 0;
}

F5 (Run --> Start Debugging)
でビルド&実行

画像3





この記事が気に入ったらサポートをしてみませんか?