栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【C++版Opencv】【Ubuntu】VScode配置Opencv

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【C++版Opencv】【Ubuntu】VScode配置Opencv

1 安装基本工具
sudo apt install -y g++
sudo apt install -y cmake
sudo apt install -y make
sudo apt install -y wget unzip

2 安装opencv依赖的库
sudo apt-get install build-essential libgtk2.0-dev libgtk-3-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev
streamer支持:
sudo apt install libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
可选的依赖:
sudo apt install libpng-dev libopenexr-dev libtiff-dev libwebp-dev

3 下载OpenCV源代码
安装最新版本:
wget -O opencv.zip https://github.com/opencv/opencv/archive/master.zip
cd 到下载的opencv目录上级目录:
unzip opencv.zip
mv opencv-master opencv

4 配置和编译OpenCV
(1)进入到opencv目录
cd opencv
mkdir build
cd build
(2)使用cmake配置opencv
sudo cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=YES -D WITH_FFMPEG=ON ..
(3)使用make编译
sudo make -j8

报错:

[ 57%] Built target opencv_dnn make: *** [Makefile:163:all] 错误 2
分析:

安装了 Anaconda 后,python 和 gcc 都用的是 anaconda 的版本,anaconda 的 gcc 版本,比 system defalut 的版本低。
解决方法:

在 shell 中先注释 Anaconda 的环境变量
export PATH=~/anaconda3/bin:$PATH

删除opencv下的build文件夹,从“4 配置和编译OpenCV”的第一步开始操作,第三步make成功后,往下走。
(4)使用make安装
sudo make install

5 配置pkg-config
(1)确认opencv4.pc文件的路径:
sudo find / -iname opencv4.pc
路径为:/usr/local/lib/pkgconfig/opencv4.pc
(2)将/usr/local/lib/pkgconfig路径加入PKG_CONFIG_PATH:
sudo gedit /etc/profile.d/pkgconfig.sh
在打开的文件中加入下面一行代码,然后保存并退出。
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
source生效
source /etc/profile
(3)验证是否成功
pkg-config --libs opencv4

6 配置动态库环境
sudo vim /etc/ld.so.conf.d/opencv4.conf
/usr/local/lib # 文件末尾加上OpenCV的lib路径 
sudo ldconfig # 配置生效

7 测试
cd 到/opencv/samples/cpp/example_cmake目录,执行如下命令:
cmake .
make
./opencv_example

8 vscode配置
(1)下载中文插件
在应用商店搜索“ch”,安装中文插件。
(2)安装c++
(3)新建文件夹“test”。打开文件夹后,新建test.cpp。
选取一张测试图片,放在test.cpp同级目录。

测试代码:test.cpp

#include 
 
using namespace std;
using namespace cv;
 
int main(int argc, char* argv[]) {
    const char* imagename = "test.jpg";
    //读图像
    Mat img = imread(imagename, 1);
    //读入图像失败
    if (img.empty()) {
        fprintf(stderr, "Can not load image %sn", imagename);
        return -1;
    }
    //显示图像
    imshow("image", img);
    //按键盘任意键就返回
    waitKey();
    return 0;
}

(4)vscode调试主要就是修改如下文件:
task.json、launch.json和c_cpp_properties.json
task.json:

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++ build active file",  
            "command": "/usr/bin/g++",
            "args": [
                "-std=c++11",
                "-g",
                //"${file}",   
                "${fileDirname}
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}",  
 
                
                "-I","${workspaceFolder}/",
                "-I","/usr/local/include/",
                "-I","/usr/local/include/opencv4/",
                "-I","/usr/local/include/opencv4/opencv2",
 
                
                "-L", "/usr/local/lib",
 
                
                "/usr/local/lib/libopencv_*",
 
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "Task generated by Debugger."
        }
    ],
    "version": "2.0.0"
}

launch.json:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++ - Build and debug active file",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}",  //程序文件路径
            "args": [],  //程序运行需传入的参数
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": true,   //运行时是否显示控制台窗口
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "C/C++: g++ build active file",
            "miDebuggerPath": "/usr/bin/gdb"
        }
    ]
}

c_cpp_properties.json:

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**",
            
                "/usr/local/include/opencv4"
            ],
            "defines": [],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "gnu11",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "linux-gcc-x64"
        }
    ],
    "version": 4
}

以上3个文件的内容不用修改,直接复制内容即可。
(5)测试结果
运行程序,显示出图片即成功。

参考:

Ubuntu20下 vscode配置OpenCV 4.5.5_纬领网络的博客-CSDN博客_ubuntu vscode配置opencv

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/915722.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号