下载源码
源码地址在opencv官网中可以找到,我这里用的是最新版的4.4.0. 官网地址:https://opencv.org/,具体操作如下两张图:
源码下载至一个指定文件夹,以/home/opencv
为例,将opencv-4.4.0.zip压缩包解压掉:
unzip opencv-4.4.0.zip
安装相关依赖
解压完成后会得到一个opencv-4.4.0的文件夹。完成这一步之后,就是要去安装一些基本的依赖文件,opencv之所以能做图像处理,就是因为opencv可以处理像png,jpeg,gif等文件,所以在使用opencv时,必须要确保我们的Linux系统上有相应的依赖供opencv使用。其安装指令如下:
sudo apt-get install build-essential
sudo apt-get install libgtk2.0-dev
sudo apt-get install libavcodec-dev
sudo apt-get install libavformat-dev
sudo apt-get install libjpeg-dev
sudo apt-get install libtiff-dev
sudo apt-get install libswscale-dev
sudo apt-get install libpng-dev
sudo apt-get install libjasper-dev
到目前为止,可能用到的图像的格式已经全部安装完毕了。这里值得一提的是,上面的所有更新完全的可用一条指令完成,但是要是不熟悉linux的童鞋还是分开来执行吧。另外一个问题就是,在执行sudo apt-get install libjasper-dev
这条指令时可能会遇到libjasper-dev包无法定位的问题,遇到这个问题后需要更新一下Linux的几个配置即可,执行如下指令:
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
该指令完成后,再次执行sudo apt-get install libjasper-dev
这个指令即可完成安装。
编译
以上依赖全都完成后,在终端中进入opencv-4.4.0这个解压缩后的文件夹。然后新建一个编译的目标文件夹并进入,这里以build文件夹为例。终端执行如下指令:
mkdir build #新建一个build文件夹
cd build #进入build文件夹
在该文件夹中执行默认的cmake ..
编译即可,即:
执行上述指令后,系统会自动的到父类文件夹下去寻找可供编译的文件。当然,如果你是第一次使用cmake编译文件,你可能会遇到以下问题。
这个问题出现的原因就是你的linux并没有安装cmake,只需要安装一下即可。
sudo apt-get install cmake
cmake完成以后再看一下你的build文件夹,就会发现出现了很多的新文件。完成之后就到最后一步了——通过makefile编译opencv,只需执行指令。
make
编译跑到100%后,再执行以下指令:
sudo make install
这些都配置完成之后需要修改配置一下环境变量 (以下环境变量的配置全都需要在root权限下进行)。
echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf
vim /etc/bash.bashrc
执行上述的vim指令后会打开bash.bashrc文件,在文件的末尾两行加上
PKG_CONFIG=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
保存退出,执行命令
source /etc/bash.bashrc
验证
输入命令 pkg-config opencv4 --modversion
,返回 4.4.0
输入命令 opencv_version
,返回 4.4.0