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 <opencv2/opencv.hpp>
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 %s\n", 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", /* 与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"
}
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
文章出处登录后可见!