linux下如何在vscode中配置opencv环境

本文介绍了如何在C++环境中配置OpenCV,包括检查OpenCV版本、编写和运行示例代码、解决编译错误、修改c_cpp_properties.json和tasks.json文件,以及安装必要的库依赖。通过这些步骤,成功运行了一个显示图像的程序。

这里使用的是C++作为编程语言,当然默认读者已经配置好了C++的编程环境

首先使用pkg-config --modversion opencv命令查看版本,确保成功安装了 o p e n c v opencv opencv,我的版本是4.5.4

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>

int main(){
    cv::Mat image = cv::imread("tiger.jpg");
    cv::namedWindow("My Image");
    cv::imshow("My Image", image);
    cv::waitKey(5000);
    return 1;
}

如果现在新建一个cpp文件,输入上面的内容(这个tiger.jpg应该是当前目录下的一张图片)看到的应该是下面的画面
在这里插入图片描述

这时候,我们打开c_cpp_properties.json文件,在includePath中加入一行"/usr/local/include/**",改成下面这样

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**",
                "/usr/local/include/**"
            ],
            "defines": [],
            "compilerPath": "/usr/bin/cpp",
            "cStandard": "gnu17",
            "cppStandard": "c++17",
            "intelliSenseMode": "linux-gcc-x64"
        }
    ],
    "version": 4
}

这时候我们发现红色波浪线消失了
在这里插入图片描述
再次运行,报错如下
在这里插入图片描述
这时候,我们打开tasks.json文件,在上面的args中加入

                "-I", "/usr/local/include",
                "-I", "/usr/local/include/opencv4",
                "-L", "/usr/local/lib",
                "-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"

这个文件变成了下面这样

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "type": "shell",
            "command": "g++",
            "args": [
                "-g",
                "${file}",
                "-std=c++11",
                "-o",
                "${fileBasenameNoExtension}.out",

                "-I", "/usr/local/include",
                "-I", "/usr/local/include/opencv4",
                "-L", "/usr/local/lib",
                "-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"
            ]
        },
        {
            "type": "cppbuild",
            "label": "C/C++: cpp 生成活动文件",
            "command": "/usr/bin/cpp",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": "build",
            "detail": "编译器: /usr/bin/cpp"
        }
    ]
}

然后回来再次运行,依然报错
在这里插入图片描述
这是一个新的问题,按照指示,我们 i n s t a l l   l i b g t k 2.0 − d e v   a n d   p k g − c o n f i g install\ libgtk2.0-dev\ and\ pkg-config install libgtk2.0dev and pkgconfig,使用sudo apt-get install命令安装即可,之后要重新编译一遍 o p e n c v opencv opencv,可参考
https://blog.youkuaiyun.com/Lin_QC/article/details/104431330
接下来我们再次运行程序就成功了,大概是下面这个样子,这是我本地的一张图片
在这里插入图片描述
那么现在就配置好opencv了

### 配置 LinuxVSCode 支持 OpenCV C++ 开发 #### 安装必要依赖项 为了使 VSCode 能够支持 OpenCV 的 C++ 开发,首先需要确保系统已经安装了必要的软件包。这通常包括编译工具链以及 OpenCV 库本身。 对于基于 Debian 或 Ubuntu 的发行版,可以通过以下命令来安装这些必需的组件: ```bash sudo apt update && sudo apt install build-essential cmake git pkg-config libgtk-3-dev \ libavcodec-dev libavformat-dev libswscale-dev python3-dev python3-numpy \ libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev gfortran openexr \ libatlas-base-dev qtbase5-dev libcanberra-gtk* -y ``` 接着下载并构建 OpenCV 及其贡献模块(如果需要的话)。可以利用 `git` 获取源码,并通过 `cmake` 来管理项目的构建过程[^1]。 #### 设置 VSCode 编辑器 一旦完成了上述准备工作,则可以在 VSCode 中创建一个新的工作区,并按照如下方式配置编辑器以便更好地处理 C++ 和 OpenCV 项目。 ##### 创建 `.vscode` 文件夹及其子文件 在项目根目录下新建名为`.vscode`的隐藏文件夹,该文件夹内应包含至少三个 JSON 格式的配置文件:`tasks.json`, `launch.json` 和 `c_cpp_properties.json`. ###### tasks.json 此文件定义了一组任务供终端执行,比如编译程序等。下面是一个简单的例子,它指定了如何调用 `g++` 进行编译操作: ```json { "version": "2.0.0", "tasks": [ { "label": "build", "type": "shell", "command": "/usr/bin/cmake", "args": [ "-S.", "-B./out/build/x64-debug", "-DCMAKE_BUILD_TYPE=Debug" ], "group": { "kind": "build", "isDefault": true }, "problemMatcher": ["$gcc"], "detail": "Generated task." } ] } ``` 请注意这里的参数可能依据个人需求有所不同;特别是当使用特定版本的编译器或其他选项时应该相应调整[^4]. ###### launch.json 这个文件用来指定启动配置,即告诉调试器怎样运行和停止应用程序。这里给出一个适用于 GDB 的基本模板: ```json { "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/your_executable_file_name", // 替换成实际可执行文件名 "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false, "MIMode": "gdb", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "build", "miDebuggerPath": "/usr/bin/gdb", "logging": {"trace":true,"traceResponse":true}, "internalConsoleOptions": "openOnSessionStart" } ] } ``` 同样地,“${workspaceFolder}”代表当前的工作空间路径,而“your_executable_file_name”则需替换为具体的输出文件名称. ###### c_cpp_properties.json 最后一个是 IntelliSense 所使用的属性表单,用于提供代码补全和其他智能感知功能。以下是针对本案例的一个实例化片段: ```json { "configurations": [ { "name": "Linux", "includePath": [ "${workspaceFolder}/**", "/usr/local/include/opencv4", "/usr/include/opencv4" ], "defines": [], "compilerPath": "/usr/bin/gcc", "intelliSenseMode": "linux-gcc-x64", "browse": { "path": [ "${workspaceFolder}" ], "limitSymbolsToIncludedHeaders": true, "databaseFilename": "" } } ], "version": 4 } ``` 在此处添加所有相关的头文件位置到 `"includePath"` 数组里,这样可以让 IDE 正确解析外部库函数声明.
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Clarence Liu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值