一、下载 opencv 和opencv_contrib 源码
- 下载 opencv 源码链接如下
https://github.com/opencv/opencv/tags - 下载 opencv_contrib 源码链接如下https://github.com/opencv/opencv_contrib/tags
注意:opencv 和 opencv_contrib 的版本必须相同!!! - 下载完解压后,将 opencv_contrib 放在 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
三、安装
参考链接:https://blog.csdn.net/Boxjod/article/details/122876799
- 在 opencv 文件夹下新建 build 文件夹
cd opencv
mkdir build
- 进入 build 文件夹,并在 build 文件夹下 cmake
此步骤需配置很多参数,若参数错误则可能导致安装好之后也不能使用(如果使用别人的方法编译完成后在测试的时候出现找不到 opencv.pc 的情况,多半是这个原因)
cd build
opencv_contrib=/home/xyn/usr/local/opencv-4.7.0/opencv_contrib-4.7.0/modules
sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=$opencv_contrib ..
sudo cmake -D WITH_TBB=ON -D WITH_EIGEN=ON -D OPENCV_GENERATE_PKGCONFIG=ON -D BUILD_DOCS=ON -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF -D WITH_OPENCL=OFF -D WITH_CUDA=OFF -D BUILD_opencv_gpu=OFF -D BUILD_opencv_gpuarithm=OFF -D BUILD_opencv_gpubgsegm=O -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
注意:上述命令会在build目录里生成对应配置的Makefile文件,可以看到配置信息之间是通过空格和“-D”来分割和标示的,配置了很多信息;
“-D OPENCV_GENERATE_PKGCONFIG=ON”可以生成 opencv.pc 文件的配置(opencv4生成的文件叫做 opencv4.pc);
“CMAKE_INSTALL_PREFIX=/usr/local”是关于安装路径的配置,这里的安装路径是在“/usr/local”下,这也是 opencv 的默认配置;
最后的两个“…”不能删除,这是指向 CMakeLists.txt 所在的目录;
此时当前目录是build,则直接编译安装即可。
3. 若由于网络原因,cmake 时出现如下类似 Warnings(若 cmake 中没有任何 Warnings 或 Errors,则转至 4)
则进行如下几步:
①查看是否正常连接 VPN
②若连接了 VPN 后仍然产生类似上述 Warnings,则将 sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=$opencv_contrib ..
修改如下
sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_DOWNLOAD_MIRROR_ID=gitcode -D OPENCV_EXTRA_MODULES_PATH=$opencv_contrib ..
(增加了 -D OPENCV_DOWNLOAD_MIRROR_ID=gitcode
,将下载源更改为GitCode镜像,即可正常下载)
cmake 成功!!!(cmake过程中,没有产生任何 Warnings 或 Errors)
4. 编译
make -j8 # 根据电脑可开的线程数增大或减小参数8
编译成功!!!
5. 安装至系统
sudo make install
由于之前已指定安装路径,因此头文件在“/usr/local/include/opencv4/opencv2/”目录下,库文件在“/usr/local/lib/”目录下(可查看一下这些文件是否是否存在)
6. 查看安装成功的 opencv 版本号
opencv_version
- 配置系统环境变量
参考链接:https://blog.csdn.net/xhtchina/article/details/126422425
sudo gedit /etc/ld.so.conf.d/opencv.conf
在打开的文件中添加如下内容
/usr/local/lib
终端输入以下命令(安装完成某个工程后生成许多动态库,该命令是为了让这些动态链接库为系统所共享)
sudo ldconfig
在终端输入如下命令
sudo gedit /etc/bash.bashrc
在打开的文件的最后添加如下内容
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
保存并退出,在终端输入如下命令
source /etc/bash.bashrc
- 查看 opencv4.pc 是否在指定位置
在“/usr/local/lib/”目录下建立 pkgconfig 目录,然后将 build 文件夹下编译生成的 opencv4.pc 拷贝进 /usr/local/lib/pkgconfig(若 pkgconfig 目录已经存在于“/usr/local/lib/”目录下,则跳过本步骤) - 验证是否安装成功
cd opencv-4.7.0/samples/cpp/
随便找一个 .cpp 文件进行编译
g++ edge.cpp `pkg-config --cflags --libs opencv4`
./a.out
若出现如下窗口,则安装成功!!!
opencv 和 opencv_contrib 安装配置完成!!!