在图像处理领域,OpenCV的使用是必不可少的,这里介绍一下OpenCV的安装及其在vscode中的配置
1.OpenCV的安装
(1)安装依赖
| sudo apt-get install build-essential |
| sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev |
| sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev |
| |
第三行的安装可能会出现无法定位包的错误,有三种解决方案
第一种:
| sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main" |
| sudo apt update |
| sudo apt install libjasper1 libjasper-dev |
这个我自己用是有效果的
第二种:
| sudo add-apt-repository "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe" |
| sudo apt update |
| sudo apt install libjasper1 libjasper-dev |
第三种:不用管,其实这个依赖对后续的使用影响不大,甚至可能有些淘汰了
(2)下载OpenCV源码
网站放在这里了:https://opencv.org/releases/,下载对应版本的source就OK了
(3)安装
先解压文件,这里我解压在/home目录下了

进入OpenCV文件夹,创建build目录
| cd opencv4.5.5 |
| mkdir build |
| cd ./build |
之后是cmake步骤
| cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=ON -D CMAKE_INSTALL_PREFIX=/usr/local .. |
再执行make指令
| sudo make -j6 #数字取决于你电脑的进程数,数字越大,make越快 |
| sudo make install |
(4)环境配置
我们之前安装的时候 OPENCV_GENERATE_PKGCONFIG=ON 所以在/usr/local/lib/pkgconfig下生成了opencv4.pc文件,里面记录了OpenCV头文件、库文件的路径。这个文件注意一下,因为最后你如果出错,很有可能缺少了这个文件
| sudo gedit /etc/bash.bashrc |
| |
| PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig |
| export PKG_CONFIG_PATH |
| |
| sudo updatedb |
| source /etc/bash.bashrc |
| |
| sudo gedit /etc/ld.so.conf.d/opencv.conf |
| |
| |
| /usr/local/lib |
| |
| |
| sudo ldconfig |
| |
| pkg-config --modversion opencv4 |
| pkg-config --libs opencv4 |

2.vscode的配置
先保证自己C++相关插件下载好
实现一个软连接
| cd /usr/local/include/ |
| sudo ln -s opencv4/opencv2 opencv2 |
配置以下三个文件
c_cpp_properties.json
| { |
| "configurations": [ |
| { |
| "name": "Linux", |
| "includePath": [ |
| "${workspaceFolder}/**", |
| "/usr/local/include/", |
| "/usr/include/" |
| ], |
| "defines": [], |
| "compilerPath": "/usr/bin/gcc", |
| "cStandard": "c17", |
| "cppStandard": "gnu++14", |
| "intelliSenseMode": "linux-gcc-x64" |
| } |
| ], |
| "version": 4 |
| } |
launch.json
| { |
| |
| "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" |
| } |
| ] |
| } |
tasks.json
| { |
| "tasks": [ |
| { |
| "type": "cppbuild", |
| "label": "C/C++: g++ build active file", /* 与launch.json文件里的preLaunchTask的内容保持一致 */ |
| "command": "/usr/bin/g++", |
| "args": [ |
| "-std=c++11", |
| "-g", |
| //"${file}", /* 编译单个文件 */ |
| "${fileDirname}/*.cpp", /* 编译多个文件 */ |
| "-o", |
| "${fileDirname}/${fileBasenameNoExtension}", /* 输出文件路径 */ |
| |
| /* 项目所需的头文件路径 */ |
| "-I","${workspaceFolder}/", |
| "-I","/usr/local/include/", |
| "-I","/usr/local/include/opencv4/", |
| "-I","/usr/local/include/opencv4/opencv2", |
| |
| /* 项目所需的库文件路径 */ |
| "-L", "/usr/local/lib", |
| |
| /* OpenCV的lib库 */ |
| "/usr/local/lib/libopencv_*", |
| |
| ], |
| "options": { |
| "cwd": "${fileDirname}" |
| }, |
| "problemMatcher": [ |
| "$gcc" |
| ], |
| "group": { |
| "kind": "build", |
| "isDefault": true |
| }, |
| "detail": "Task generated by Debugger." |
| } |
| ], |
| "version": "2.0.0" |
| } |
| |
就ok了

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库