Ubuntu 编译opencv4.5.4+opencv_contrib

目录

前言

一、opencv安装

 二、下载opencv_contirb扩展并编译

        1.cmake更新

        2.opencv_copntrib安装

        3.环境配置

测试



前言

本博客是基于Ubuntu18.04下的对于opencv和扩展项的配置


一、opencv安装

Releases · opencv/opencv · GitHub

Releases - OpenCV

上述两个链接都可以

这里下载opencv 4.5.4版本,选择source下载源代码

cd opencv-4.5.4					//进入解压完毕的目录
mkdir build						//创建build目录
cd build						//生成cmake	
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..
make -j4 						//4核编译
sudo make install				//安装
sudo gedit /etc/bash.bashrc    //添加环境变量
//在最后加入以下代码
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig 
export PKG_CONFIG_PATH

 完成后进行动态库链接即可

sudo ldconfig

 二、下载opencv_contirb扩展并编译

1.cmake更新

系统通过命令行进行下载安装的cmake版本低可能造成后续编译错误

所以首先选择进行cmake的更新

一、下载Binary版(下载即用)

Download | CMake

下载好后将文件解压出来,我放到了下载项里。

采用软链接的方式进行添加到环境变量中

su
//切换到root用户下后
ln -sf /home/zed/下载/cmake-3.24.3-linux-x86_64/bin/* /usr/local/bin/

 这里注意自行更改软链接的路径和cmake版本号

查看是否添加完成

cmake -version
cmake-gui -version
ccmake -version
cpack -version
ctest -version

显示对应的版本说明已经成功添加 

2.opencv_copntrib安装

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

选择对应版本的下载即可

然后安装相应的opencv依赖项文件

 sudo apt-get install build-essential 
 sudo apt-get install git libgtk-3-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python3-dev python3-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

 最后一个会出现无法定位到安装包的问题

提示:errorE: unable to locate libjasper-dev

 解决方法如下

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

然后继续进行接下来的操作,将OpenCV-contrib文件解压后放入opencv解压后的文件夹,并修改contrib文件夹名字为opencv_contrib


 

 进入工作目录下进行编译

cd opencv-4.5.4/
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules ..

 *》也可以将OPENCV_EXTRA_MODULES_PATH=…/opencv_contrib/modules …修改为自己的路径。

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=/home/zed/opencv454/opencv-4.5.4/opencv_contrib-4.5.4/modules ..

 *》如果不需要contrib模块,则输入:

cmake -D CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=ON -D ENABLE_CXX11=1 -D OPENCV_ENABLE_NONFREE=True ..

(推荐)如果需要GPU加速和contrib模块,则输入: 

cmake -D CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=ON -D ENABLE_CXX11=1 -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules -D OPENCV_ENABLE_NONFREE=True -D INSTALL_PYTHON_EXAMPLES=ON -D INSTALL_C_EXAMPLES=ON -D WITH_CUDA=ON -D WITH_TBB=ON -D ENABLE_FAST_MATH=1 -D WITH_OPENMP=ON -D WITH_CUFFT=ON -D WITH_CUBLAS=ON -D CUDA_FAST_MATH=1 -D CUDA_NVCC_FLAGS="-D_FORCE_INLINES" ..


然后进行最后的编译即可

make -j$(nproc)

 等待编译完成之后就可以安装了

sudo make install

 3.环境配置

另起一个终端

sudo gedit /etc/ld.so.conf.d/OpenCV.conf
//打开之后在空白文档中输入
/usr/local/lib

然后重新进行动态库的链接

sudo ldconfig

  如果出现问题:

/sbin/ldconfig.real: /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8 不是符号链接

则需要进行

sudo ldconfig -v

 在终端的输出中找到与报错信息对应的提示,然后输入自己对应的即可

如此反复直到最后能正常进行动态库的编译为止

修改bash文件

sudo gedit /etc/bash.bashrc
//在最后一行加入
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
export PKG_CONFIG_PATH

 然后另起终端

source /etc/bash.bashrc
sudo updatedb

终端正常提示后说明配置已经基本完成 

测试

cd /opencv4.5.4/samples/cpp/example_cmake
cmake .
make
./opencv_example

 然后发现正常调用了摄像头并显示画面说明已经配置完成。

 如果这里并没有调用摄像头,而是显示了一个

Hello opencv

的黑窗口,说明摄像头没有链接到虚拟机中

解决方法 

打开可移动设备,然后勾选连接(断开与主机的连接)即可 

如果发现摄像头已经正常连接但是不显示窗口

则说明usb兼容性需要更改

在这里做一下调整即可 

猜你喜欢

转载自blog.csdn.net/LYY_WJL/article/details/128185035
今日推荐