Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV

OpenCV是大型的Third party 计算机视觉库,在开发中会经常用到,本篇记录一下 在Ubuntu系统上安装和配置OpenCV,并使用C/C++调用OpenCV

关于VS Code配置C/C++开发环境的部分,见之前的博文 Linux/Ubuntu系统下使用VS Code配置C/C++开发环境

1. 准备工作

(1)更新下环境

复制代码
sudo apt-get update
sudo apt-get upgrade

(2)安装编译器和构建工具等,若已安装,跳过即可

复制代码
sudo apt-get install -y g++            # Ubuntu自带gcc
sudo apt-get install -y cmake
sudo apt-get install -y make
sudo apt-get install -y wget 
sudo apt-get install -y unzip
sudo apt-get install -y git

(3)安装各种依赖库

复制代码
 sudo apt-get install build-essential pkg-config 
 sudo apt-get install libgtk2.0-dev libgtk-3-dev libglib2.0-dev libavcodec-dev libavformat-dev libswscale-dev libavutil-dev libv4l-dev liblapacke-dev libxvidcore-dev libx264-dev
 sudo apt-get install python-dev python-numpy
 sudo apt-get install libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
 sudo apt-get install libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper1 libjasper-dev libdc1394-22-dev libopenexr-dev libwebp-dev
 sudo apt-get install libatlas-base-dev gfortran 
 sudo apt-get install ffmpeg

安装依赖库libjasper1 和 libjasper-dev时,若报错E:Unable to locate package libjasper-dev ,可以命令行执行以下命令,然后再安装依赖库 libjasper1 libjasper-dev

复制代码
 sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"            # 国内可能需要换国内的镜像
 sudo apt-get update 

2. 下载OpenCV的源文件

可以在官网下载,也可以使用GitHub,这里选择git clone方式,下载的opencv文件夹在home目录下

复制代码
 git clone https://github.com/opencv/opencv.git        # 默认下载最新的版本
 git -C opencv checkout 4.x

3. 生成构建脚本和编译

(1)cd切换到 opencv目录下,创建build文件夹,并切换到build目录下

(2)在build目录下使用cmake来生成构建脚本,使用如下命令,

复制代码
 cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=ON -D WITH_FFMPEG=ON ..                # .. 不要漏掉

(3)在build目录下编译opencv

4. 安装OpenCV

编译成功后,在build目录下执行安装命令,等待安装完成

5. 配置环境

(1)配置环境变量:PKG_CONFIG_PATH

前面进行cmake时,已经生成了opencv4.pc配置文件,该文件的安装路径为:/usr/local/lib/pkgconfig/opencv4.pc

在build目录下使用命令查看一下

我们需要将opencv4.pc的路径添加到环境变量PKG_CONFIG_PATH中,创建一个名为pkgconfig.sh的脚本文件,如图

在pkgconfig.sh文件中添加下面一行语句,保存后关闭。

复制代码
 export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

然后刷新环境变量,使之生效。

复制代码
 source /etc/profile

配置环境变量PKG_CONFIG_PATH 完成后,就可以使用pkg-config命令来查看和管理opencv的配置文件(也就是opencv4.pc)

(2)配置OpenCV的动态库环境

我们需要将OpenCV的libs的安装目录添加到动态库加载配置文件中,这样在编译时,才能找到OpenCV的各种库文件,下面创建opencv4.conf

在文件中添加下面一行

复制代码
 /usr/local/lib

刷新一下动态库环境

复制代码
 sudo ldconfig

6. 测试安装及配置是否成功

使用OpenCV自带的示例,按照下图操作

执行完以上命令后会调用摄像头,显示如下即成功。

7. 通过 cmake和gcc 来构建C/C++程序调用OpenCV

(1)在home目录下新建一个文件夹W_CPP,

(2)在W_CPP文件夹下写一个test.cc程序,如下:

(3)在同一文件夹下写一个CMakeLists.txt,如下

复制代码
# cmake needs this line
cmake_minimum_required(VERSION 3.10)
# Define project name
project(W_CPP)
# Find OpenCV, you may need to set OpenCV_DIR variable
# to the absolute path to the directory containing OpenCVConfig.cmake file
# via the command line or GUI
find_package(OpenCV REQUIRED)
# If the package has been found, several variables will
# be set, you can find the full list with descriptions
# in the OpenCVConfig.cmake file.
# Print some message showing some of them
message(STATUS "OpenCV library status:")
message(STATUS "    config: ${OpenCV_DIR}")
message(STATUS "    version: ${OpenCV_VERSION}")
message(STATUS "    libraries: ${OpenCV_LIBS}")
message(STATUS "    include path: ${OpenCV_INCLUDE_DIRS}")
# set "-std=c++11"
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)

# Add OpenCV headers location to your include paths
# include_directories(${OpenCV_INCLUDE_DIRS})

# Declare the executable target built from your sources
add_executable(test test.cc)
# Link your application with OpenCV libraries
target_link_libraries(test PRIVATE ${OpenCV_LIBS})

(4)在同一文件夹下放一张图片,比如 flying.jpeg

(5)命令行切换到W_CPP目录下,依次执行以下命令,

复制代码
 cmake .
 make
./test flying.jpeg

以上执行成功,会显示图片,

8. 使用VS Code 配置C/C++项目环境来调用OpenCV

关于VS Code配置C/C++开发环境的准备部分,见本篇开始处的链接,下面直接配置文件,

(1)用VS Code打开W_CPP文件夹,在该目录下写一个test2.cc程序,

(2)配置tasks.json文件

(3)配置launch.json文件

(4)配置c_cpp_properties.json文件

(5)配置完成后,运行编译,开始调试

编译源文件:test2.cc保持打开状态,在VS Code菜单项找到 Terminal --> Run Build Task... ,点击运行

调试test2.cc:同样保持打开,在VS Code菜单项找到 Run --> Start Debugging ,点击运行(或使用F5),会显示图片:

OpenCV的安装、配置及调用演示整个过程到此结束。

OpenCV Contrib扩展库的安装也类似,以后补充。

复制代码
cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules -D OPENCV_GENERATE_PKGCONFIG=ON -D WITH_FFMPEG=ON ..      
相关推荐
Lovyk1 小时前
Linux 正则表达式
linux·运维
Fireworkitte2 小时前
Ubuntu、CentOS、AlmaLinux 9.5的 rc.local实现 开机启动
linux·ubuntu·centos
sword devil9003 小时前
ubuntu常见问题汇总
linux·ubuntu
ac.char3 小时前
在CentOS系统中查询已删除但仍占用磁盘空间的文件
linux·运维·centos
中科米堆4 小时前
中科米堆CASAIM自动化三维测量设备测量汽车壳体直径尺寸
运维·自动化·汽车·视觉检测
淮北也生橘124 小时前
Linux的ALSA音频框架学习笔记
linux·笔记·学习
缘华工业智维5 小时前
CNN 在故障诊断中的应用:原理、案例与优势
大数据·运维·cnn
开航母的李大6 小时前
软件系统运维常见问题
运维·服务器·系统架构·运维开发
华强笔记7 小时前
Linux内存管理系统性总结
linux·运维·网络
十五年专注C++开发8 小时前
CMake进阶: CMake Modules---简化CMake配置的利器
linux·c++·windows·cmake·自动化构建