Linux下安装opencv(root身份和非root普通用户安装)

1、以root身份为整个系统安装opencv

该部分参考了这篇文章:https://zhuanlan.zhihu.com/p/118222087

下载依赖

首先下载opencv安装时所需的依赖,如果缺少某个依赖文件,编译过程并不会出错,但使用opencv函数的时候会提示错误,只能重新编译安装。
新建一个shell脚本,批量安装依赖文件,脚本命名为download.sh:

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 
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev
sudo apt-get install libxvidcore-dev libx264-dev
sudo apt-get install libatlas-base-dev gfortran 
sudo apt-get install ffmpeg

修改download.sh的权限:

sudo chmod 777 ./download.sh

执行脚本安装依赖文件:

./download.sh

注意:
如果你是在Ubuntu上的命令行安装,而且是使用windows查看的该博客,那么你将无法将上面的依赖文件内容复制到Ubuntu中,可能你会在windows中新建一个download.sh文件,修改好脚本文件的内容,再上传到linux服务器上执行,但是这样会导致sh文件运行时发生错误,报 bad interpreter: No such file or directory 错误。
这是因为,windows下对文本文件的保存格式与unix下是不同的,windows的回车字符是’/r/n’,而linux下是’/n’。
因此,你可以采取以下方式:
使用mobaxterm等软件,连接服务器,使用vim或mobaxterm自带的编辑器,进行脚本文件的编辑,不要使用windows的编辑器。

下载opencv和opencv_contrib的源码

opencv 4.2.0 的下载地址:https://github.com/opencv/opencv/archive/refs/tags/4.2.0.tar.gz
opencv contrib 4.2.0 的下载地址:https://github.com/opencv/opencv_contrib/archive/refs/tags/4.2.0.tar.gz

需要其他版本的opencv直接去github下的releases/tags中下载对应的版本即可,链接如下:

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

安装opencv

直接解压刚刚下载的两个tar.gz文件,到特定的目录下即可:

tar -zxvf opencv-4.2.0.tar.gz 
tar -zxvf opencv_contirb-4.2.0.tar.gz 

解压后得到两个文件夹:opencv-4.2.0 和 opencv_contirb-4.2.0。
将解压后的opencv_contrib-4.2.0 文件夹整体移动到opencv-4.2.0目录下:

sudo cp -r opencv_contrib-4.2.0 opencv-4.2.0

在opencv-4.2.0下新建build文件夹,并进入:

cd opencv-4.2.0
sudo mkdir build
cd build

在build下新建一个shell脚本,执行build命令:

vim cmake_build.sh

脚本 cmake_build.sh 内容如下:
只需要将OPENCV_EXTRA_MODULES_PATH中的your_path,换成自己存放opencv的路径即可。

#!/bin/bash
sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=/your_path/opencv-4.2.0/opencv_contrib-4.2.0/modules/ .. 

修改权限并执行:

sudo chmod 777 ./cmake_build.sh
./cmake_build_sh

在build的过程中,会下载所需的文件,但因为网络原因,会导致一些资源连接超时,导致无法下载某些文件,会在命令行中提示,如果尝试多次build都无法成功下载,直接将命令行中提示缺少的文件,手动下载后拷贝到相应的路径即可。

如提示:boostdesc_binboost_256.i 下载超时,直接在百度上搜索资源,将该文件,下载到本地,并上传到 /your_path/opencv-4.2.0/opencv_contrib-4.2.0/modules/xfeatures2d/src/ 路径下,即可。

在此推荐大家可以去我参考的这位大佬这,他把build中需要下载的文件,上传到了github中,大家可以直接去找到相应的文件进行下载,并顺便给大佬一个star。

编译OpenCv时经常缺少的.i文件

如果这上面也找不到,就直接百度上搜索,在将缺少的文件上传到对应位置后,可以再执行一遍 cmake_build.sh 脚本。

然后在build目录下使用make命令进行编译:

sudo make -j32
sudo make install

-j32 的意思是,让make最多允许32个编译命令同时执行,可以更有效的利用CPU资源。
使用以下命令可以查看linux系统CPU的信息,从而确定-j参数后面的数字,如果你的系统核心数足够多,就将该参数尽可能的设置大点,否则需要编译很长时间:

# 查看CPU信息
cat /proc/cpuinfo

# 查看物理CPU的个数
cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l

# 查看逻辑CPU的个数
cat /proc/cpuinfo |grep "processor"|wc -l

# 查看CPU是几核的
cat /proc/cpuinfo |grep "cores"|uniq

安装完成后,使用vim新建或修改文件 opencv.conf

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

在文件末尾添加如下内容:

/usr/local/lib

然后执行命令,让配置生效:

sudo ldconfig

然后修改 bash/bashrc 文件:

sudo vim /etc/bash.bashrc

在文件末尾添加:

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

保存文件后,执行下面的命令:

source /etc/bash.bashrc  
sudo updatedb 

至此opencv配置完成。
使用下面的命令,查看opencv的版本,验证是否安装成功。

pkg-config --modversion opencv4

2. 非root用户安装opencv

很多时候,我们在公用的服务器上,没有管理员权限,或者我们害怕把服务器搞坏了,就可以只在当前用户下,对该用户安装opencv。

下载依赖

与上面root方式安装opencv时下载依赖的方式相同,但是此处用到了apt-get命令,这个地方是需要用到root权限的。
如果你有管理员权限,可以使用管理员身份在服务器安装一些依赖包,然后在普通用户上安装opencv。
如果没有的话,可以先安装一下opencv试试,看有没有问题。

下载opencv的源码

opencv源码下载地址:https://opencv.org/releases/

依旧下载4.2.0版本:
在这里插入图片描述

安装

和上面一样,解压下载后的源码:

tar -zxvf opencv-4.2.0.tar.gz 

在opencv-4.2.0目录下,创建build目录:

cd opencv-4.2.0
mkdir build

在build目录下,创建 cmake_build.sh 脚本文件:

cd build
vim cmake_build.sh

脚本的内容如下,只需要将 opencv安装路径CMAKE_INSTALL_PREFIX 和 opencv modules存放路径OPENCV_EXTRA_MODULES_PATH 中的 your_path 修改为自己存放opencv路径即可:

#!/bin/bash
sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/your_path/opencv-4.2.0 -D WITH_TBB=ON -D WITH_V4L=ON -D BUILD_TIFF=ON -D BUILD_EXAMPLES=ON -D WITH_OPENGL=ON -D WITH_EIGEN=ON -D WITH_CUDA=OFF -D WITH_CUBLAS=ON -D OPENCV_GENERATE_PKGCONFIG=ON -D OPENCV_EXTRA_MODULES_PATH=/your_path/opencv-4.2.0/opencv_contrib-4.2.0/modules/ .. 

OPENCV_GENERATE_PKGCONFIG=ON 控制是否生成pkg_config,opencv4中如果不加这个命令,就不会生成pkgconfig,就会导致安装后找不到opencv文件。

编译之后,使用如下命令安装:

make -j32
make install

安装后,添加环境变量,在/home/your_username/.bashrc中添加如下文字,将your_path换成自己存放opencv的路径:

export PKG_CONFIG_PATH=/your_path/opencv4.0.1/lib/pkgconfig
export LD_LIBRARY_PATH=/your_path/opencv4.0.1/lib

添加完成后:

source ~/.bashrc

验证是否安装成功,查看opencv的版本:

pkg-config --modversion opencv4

参考:

root安装:
https://zhuanlan.zhihu.com/p/118222087
https://blog.csdn.net/m0_37797953/article/details/82013509
https://blog.csdn.net/Wangguang_/article/details/85762705

非root安装:
https://blog.csdn.net/qq_19655645/article/details/96132274

opencv资源:
https://opencv.org/releases/page/2/
https://github.com/Linfeng-Lee/OpenCV_boostdesc_vgg_file
https://gitee.com/zhu_hj/opencv
https://sourceforge.net/projects/opencvlibrary/files/

其他参考:
https://blog.csdn.net/flyconley/article/details/104441691
https://www.cnblogs.com/xd502djj/archive/2011/02/28/1967350.html

错误排查:
https://blog.csdn.net/gggxin/article/details/3876743

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KyrieLiu52

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值