/* 你的 HTML 代码将放在这里 */
L
O
A
D
I
N
G
紅葉
opencv4-C++版本下载(附vscode环境配置)

opencv4-C++版本下载(附vscode环境配置)

1.安装依赖

使用g++和cmake编译opencv4

安装g++, cmake, make, wget, unzip,若已安装,此步跳过

1
sudo apt install -y g++  unzip cmake 

安装opencv依赖的基本库

1
2
3
4
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 update
sudo apt-get install python3-dev python3-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev

若出现 E: 无法定位软件包 libjasper-dev 报错,是因为缺少依赖,终端继续输入

1
2
3
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev

安装依赖后

1
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev

下载OpenCV源文件

下载源文件

直接在官网上下载源文件(无需翻墙)https://opencv.org/releases/

点击Source进行下载


顺便下载opencv-contrib

https://github.com/opencv/opencv_contrib/tags

选择Download ZIP

在主目录创建一个叫opencv的文件夹

将刚刚下载的两个压缩包移动到这个文件夹

来到这个文件夹打开一个新终端

输入

1
unzip opencv-4.6.0.zip opencv_contrib-4.6.0.zip

然后进入opencv文件夹:

1
cd ~/opencv-4.6.0

准备CMake编译

创建build文件夹

打开终端:

1
mkdir build && cd build

开始cmake编译(注意看里面,有一些需要改的东西)

1
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_TBB=ON -D WITH_OPENMP=ON -DOPENCV_EXTRA_MODULES_PATH=你的opencv_contrib的路径/modules  -D INSTALL_CXX_EXAMPLES=ON -D OPENCV_GENERATE_PKGCONFIG=ON -D WITH_1394=OFF ..

这么长的指令懒得看的直接粘过去就行,其中-D INSTALL_CXX_EXAMPLES=ON,是下载C++的编译,你可以换成C或者python,复制多一份将CXX替换掉即可。

接着输入

1
make -j8

-j8中的8指同时使用8个进程,可以根据电脑的进程数调整此值,看你cpu线程有多少,j越多编译越快,个人推荐j8(我用的-j32).

用make进行安装

1
sudo make install 

打开opencv环境配置文件

1
sudo gedit /etc/ld.so.conf.d/opencv.conf

打开后在里面添加:

1
/usr/local/lib

执行命令使之生效

1
sudo ldconfig 

配置bash

1
sudo gedit /etc/bash.bashrc 

添加

1
2
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

保存更新

1
source /etc/bash.bashrc
1
sudo updatedb

环境配置

1.下载vscode

选择 .deb x64

如果下载太慢可以选择换源,将下面框柱的网址改为: vscode.cdn.azure.cn

下载完之后来到下载vscode包的地方,右键打开终端‘

输入 : sudo dpkg -i code_1.77.3-1681292746_amd64.deb

后面的安装包根据你自己下载的版本更改

打开vscode

下载C++扩展

回到资源管理器

按右ctrl+左shift+P

选择第一个

9

根据下图进行配置

然后随便创建一个text.cpp文件,在text.cpp同一路径下放一张照片,照片名字改0.png,随意也可以

输入以下代码

1
2
3
4
5
6
7
8
9
10
#include<opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main()
{
Mat img = imread("0.png",1);
imshow("1",img);
waitKey(0);
return 0;
}

按F5运行一下,会出现一个.vscode文件夹,里面有两个文件(没有也没关系)反正要有三个文件

c_cpp_properties.json launch.json tasks.json

c_cpp_properties.json:复制以下代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"/usr/include/opencv4",
"/usr/local/include/opencv4"
],
"defines": [],
"compilerPath": "/usr/bin/gcc",
"cStandard": "c17",
"cppStandard": "gnu++17",
"intelliSenseMode": "linux-gcc-x64",
"configurationProvider": "ms-vscode.makefile-tools"
}
],
"version": 4
}

launch.json:复制以下代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
{

"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": false, //运行时是否显示控制台窗口
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: g++ build active file",/*与tasks.json文件里的label内容保持一直*/
"miDebuggerPath": "/usr/bin/gdb"
}
]
}

tasks.json:复制以下代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
{
"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"
}

回到text.cpp,运行代码

图像成功运行,配置完成

本文作者:紅葉
本文链接:https://swe-et.github.io/opencv/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可