1. 安装准备
安装前需要下载一些必须的依赖项。 不同版本opencv依赖会有不同,具体见官网opencv安装
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
常出现的问题:无法定位 libjasper-dev
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev
2. 安装opencv
sudo apt-get install git
git clone https://github.com/opencv/opencv.git
需要注意的是:opencv的viz模块需要单独处理!!!!!
坑爹啊这么常用的模块不放到source里面。
在安装 OpenCV 的 viz 模块之前,请务必确认以下关键步骤:
- 首先,检查您的 OpenCV 源代码目录中的
modules
文件夹。特别注意是否存在viz
文件夹。- 如果
viz
文件夹缺失,即使按照网上的各种指南进行操作,也无法成功安装 viz 模块。- 若发现
viz
文件夹不存在,您可以从 OpenCV 的额外模块仓库获取: https://github.com/opencv/opencv_contrib- 在 opencv_contrib 仓库的
modules
目录中,您将找到viz
文件夹。- 下载
viz
文件夹,并将其复制到您的 OpenCV 源代码的modules
目录中。- 确保复制的
viz
文件夹版本与您的 OpenCV 版本相匹配,以避免潜在的兼容性问题。- 完成这些步骤后,您就可以按照标准流程继续编译和安装 OpenCV,包括 viz 模块在内。
通过执行这些操作,您可以确保 viz 模块的所有必要文件都已就位,从而大大提高成功安装的可能性。记住,在开始编译过程之前,仔细检查和准备必要的文件是非常重要的。
# 也可以直接从官网中下载
mkdir build
cd build
cmake \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D WITH_GTK=ON \
-D OPENCV_GENERATE_PKGCONFIG=YES \
-D WITH_VTK=ON \
-D PYTHON_EXECUTABLE=/usr/bin/python3 \
..
# 另外的版本
cmake \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D WITH_GTK=ON \
-D OPENCV_GENERATE_PKGCONFIG=YES \
-D OPENCV_EXTRA_MODULES_PATH=/home/fairlee/opencv-4.8.0/opencv_contrib-4.8.0/modules/ \
-D WITH_VTK=ON \
-D PYTHON_EXECUTABLE=/usr/bin/python3 \
..
OPENCV_GENERATE_PKGCONFIG=YES:表示自动生成OpenCV的pkgconfig文件,否则需要自己手动生成。opencv_contrib的目录需要根据自己电脑更改
非常干净的,没有任何“警告”的cmake . .
2.1 编译和安装
# 返回当前系统的处理器核心数量
make -j`nproc`
编译代码时快的飞起!!!!!!!!!!!!!
安装
sudo make install
3. 环境变量配置
3.1 将OpenCV的库添加到系统路径
3.1.1配置ld.so.conf文件
sudo gedit /etc/ld.so.conf
在文件中加上一行
include /etc/ld.so.conf.d/*.conf
include /usr/local/lib
3.1.2 手动生成opencv.conf文件
sudo gedit /etc/ld.so.conf.d/opencv.conf
添加内容如下
/usr/local/lib
以上两种方法配置好后,执行如下命令使得配置的路径生效
sudo ldconfig
3.1.3 生成opencv4.pc文件
sudo touch /usr/local/lib/pkgconfig/opencv4.pc
内容如下 (这个内容应该是自动生成的,或者安装后就有opencv4.pc文件)
用下面的命令进行查看:
sudo gedit /usr/local/lib/pkgconfig/opencv4.pc
3.1.4 配置系统bash
因为在cmake时,选择了自动生成OpenCV的pkgconfig文件,在/usr/local/lib/pkgconfig路径可以看到文件,确保文件存在,执行如下命令
sudo gedit /etc/bash.bashrc
在文末添加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
保存退出,然后执行如下命令使配置生效
source /etc/bash.bashrc
4. 查看版本
pkg-config --modversion opencv4
pkg-config --cflags opencv4
pkg-config --libs opencv4
pkg-config --modversion opencv4
作用:显示已安装的 OpenCV4 的版本号。 意义:这可以帮助你确认系统中安装的 OpenCV 版本,对于确保代码兼容性和排查版本相关问题非常有用。pkg-config --cflags opencv4
作用:显示编译 OpenCV4 程序时需要的编译器标志(compiler flags)。 意义:这些标志通常包括头文件的包含路径(-I 选项)。在编译使用 OpenCV 的程序时,你需要将这些标志添加到编译命令中,以确保编译器能找到必要的头文件。pkg-config --libs opencv4
作用:显示链接 OpenCV4 库时需要的库文件和链接器标志。 意义:这包括库文件的路径和名称(通常是 -L 和 -l 选项)。在链接使用 OpenCV 的程序时,你需要将这些标志添加到链接命令中,以确保链接器能找到并链接所有必要的 OpenCV 库。