主页 > 创业  > 

Ubuntu安装OpenCV(C++)

Ubuntu安装OpenCV(C++)
版本详情:

Ubuntu: 22.04 + 5.15.0-133-generic

gcc: 11.4.0

g++: 11.4.0

OpenCV: 4.7.0

1. 卸载 OpenCV

进入原先编译 opencv 的 build 目录,在该目录下打开终端,执行以下代码(如果 build 已经删除了,可以重新编译一遍该版本的 opencv,然后在最后一步执行 sudo make uninstall)

sudo make uninstall cd .. sudo rm -r build sudo rm -r /usr/local/include/opencv4 /usr/local/include/opencv3 /usr/local/include/opencv2 /usr/local/include/opencv /usr/include/opencv4 /usr/include/opencv3 /usr/include/opencv2 /usr/include/opencv /usr/local/share/opencv /usr/local/share/OpenCV /usr/share/opencv /usr/share/OpenCV /usr/local/bin/opencv* /usr/local/lib/libopencv*

执行代码后可能会报错,忽略掉

sudo apt-get --purge remove opencv-doc opencv-data python-opencv sudo apt-get autoremove opencv-doc opencv-data libopencv-dev libopencv2.4-java libopencv2.4-jni python-opencv libopencv-core2.4 libopencv-gpu2.4 libopencv-ts2.4 libopencv-photo2.4 libopencv-contrib2.4 libopencv-imgproc2.4 libopencv-superres2.4 libopencv-stitching2.4 libopencv-ocl2.4 libopencv-legacy2.4 libopencv-ml2.4 libopencv-video2.4 libopencv-videostab2.4 libopencv-objdetect2.4 libopencv-calib3d2.4 pkg-config opencv --libs pkg-config opencv --modversion

执行完以上步骤,一般就可以完全卸载OpenCV

2. 安装 OpenCV (1) 更新软件包和安装工具 sudo apt update sudo apt install -y cmake g++ wget unzip (2) 安装必要的依赖项 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 (3) 下载 OpenCV

前往 OpenCV 官网,选择你需要的版本进行下载。通常,下载页面会提供不同格式的包,如源代码包(Sources)和预编译包(Pre-built binaries)等。也可以如下通过命令下载。

wget -O opencv.zip github /opencv/opencv/archive/4.7.0.zip wget -O opencv_contrib.zip github /opencv/opencv_contrib/archive/4.7.0.zip unzip opencv.zip unzip opencv_contrib.zip

如果不需要 opencv_contrib 则不需要下载

(4) 创建路径 mkdir opencv mv -r ./opencv-4.7.0 ./opencv mv -r ./opencv_contrib-4.7.0 ./opencv cd opencv mkdir build cd build

如果不需要 opencv_contrib 则不需要移动

(5) 配置 CMake cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.7.0/modules/ ../opencv-4.7.0

注意最后两条的路径配置要正确。如果不需要 opencv_contrib 则不需要 -DOPENCV_EXTRA_MODULES_PATH。这里 -D CMAKE_BUILD_TYPE=Release 指定了构建类型为 Release(优化版本),-D CMAKE_INSTALL_PREFIX=/usr/local 指定了安装前缀为 /usr/local。

此外,据说还要增加 -DOPENCV_GENERATE_PKGCONFIG=ON,这是为了在 /usr/loacl/lib/pkgconfig/ 目录下自动生成 opencv4.pc 文件。这个可能是与下面 环境配置 一起构成 pkgconfig 的配置,如此可以完成下面 pkg 的 g++ 调用方式。

(6) 编译和安装 sudo make -j$(nproc) sudo make install (7) 测试 opencv_version 4.7.0 # pkg-config opencv --modversion # 4版本以下

3. 配置环境

实测不需要下面的环境配置,OpenCV 依然可以使用,但大部分教程都有下面的环境配置环节,所以这里也记录了环境配置过程

(1) 配置库文件

在 /etc/ld.so.conf.d/ 加入对于库的 .conf 文件,首先新建 opencv.conf

sudo vim /etc/ld.so.conf.d/opencv.conf

打开文件之后输入(可能是个空文件,没关系)

/usr/local/lib

输入以下代码,将 /etc/ld.so.conf.d 中的数据读入缓存

sudo ldconfig (2) 配置环境变量

添加 pkg-config 环境变量,打开文件之后输入路径

sudo vim ~/.bashrc

把这个路径添加在文件最后(如果不是/usr/local路径下,则改成自己的路径)

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

更新环境变量

source ~/.bashrc

以上所有命令的具体含义和解释可以参考最后参考链接 1。

完成 OpenCV 安装后,如果空间不够,完全可以删除上面的 opencv 文件夹,以及两个 zip 文件。

4. 编译 OpenCV 程序

安装完成后,可以发现 OpenCV 被安装到 /usr/local/include/opencv4 

(1) g++ 编译

必须加上后面这一长串,否则找不到头文件或者库文件

g++ your_program.cpp -o your_program -I/usr/local/include/opencv4 -L/usr/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_imgcodecs # 这里 -I/usr/local/include/opencv4指定了头文件搜索路径, -L/usr/local/lib指定了库文件搜索路径, -lopencv_...指定了要链接的库。 #

或者使用如下命令,上面 配置环境 那一步可能会影响到下面这一命令,未测试。

g++ `pkg-config opencv --cflags` your_program.cpp -o your_program `pkg-config opencv --libs` (2) CMakeList 编译

路径结构

inculde 语句

#include <opencv2/core/core.hpp> #include <opencv2/opencv.hpp> using namespace cv; //OpenCV 的命名空间

编译命令

mkdir build cd build/ cmake .. make

CMakeList.txt 文件如下,其中 AVM2D 是我的源文件名。

# cmake needs this line cmake_minimum_required(VERSION 3.1) # Define project name project(AVM2D_project) # 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}") # Declare the executable target built from your sources add_executable(AVM2D AVM2D.cpp) # Link your application with OpenCV libraries target_link_libraries(AVM2D PRIVATE ${OpenCV_LIBS})

关于 OpenCV 下 CMakeList.txt 的使用方式参考如下链接 4。通过 set() 命令可以指定 OpenCV 包的搜索路径。

参考链接:

1. ubuntu opencv 安装

2. OpenCV安装(Ubuntu)

3. 04【安装】【避坑指南】Ubuntu中安装OpenCV

4. opencv在 Cmakelist的写法以及编译详解

5. Ubuntu系统---编译opencv程序的几种方式g++、Makefile、Cmake

6. opencl 安装centos linux安装opencv4

标签:

Ubuntu安装OpenCV(C++)由讯客互联创业栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Ubuntu安装OpenCV(C++)