在新安装的ubuntu18.04系统上(仅仅修改了系统软件源为清华源),从零开始一步一步编译安装opencv3.4.8完整版。我个人工作需要经常在ubuntu16和18上编译安装opencv3和4,正式开始前又看了很多别人帖子,把所有步骤和细节都搞清楚了才开始,最终成功编译安装完整版opencv。这里做一个记录,以帮大家一次性完美搞定。
参考:
【相关链接】【ubuntu16.04完美安装opencv3+contrib】
##
cmake过程所需文件:
ippicv_2019_lnx_intel64_general...
opencv_3rdparty-contrib_xfeatures2d...
opencv_3rdparty-contrib_xfeatures2d...
face_landmark_model.dat
【链接】
##
将下载的opencv和opencv_contrib两个压缩包解压,将解压后的contrib文件夹放在opencv文件夹中,并新建空的build文件夹,如下所示:
终端中依次执行以下安装命令:
#安装工具
sudo apt-get install cmake cmake-qt-gui git unzip
#安装依赖
sudo apt-get install build-essential
sudo apt-get install 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 libtiff5-dev libjasper-dev libdc1394-22-dev #处理图像所需的包
#以下是opencv官方linux安装教程中未制定的包,以防后期使用,这里都安装了(反正都不大)
sudo apt-get install libv4l-dev liblapacke-dev #视频相关的包
sudo apt-get install libxvidcore-dev libx264-dev #处理视频所需的包
sudo apt-get install libatlas-base-dev gfortran #优化opencv功能的包
sudo apt-get install ffmpeg #流媒体转换/播放工具包
sudo apt-get install libgtk-3-dev
sudo apt-get install libopenblas-dev #高性能多核矩阵运算库BasicLinearAlgebraSubprograms
其中,在安装libjasper-dev时报错:无法定位软件包 libjasper-dev
解决方法:依次执行以下命令,其中libjasper1是libjasper-dev的依赖包,必须放在前边。
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt-get update
sudo apt-get install libjasper1 libjasper-dev
【开始】进入build文件夹,右键打开终端,执行“cmake-gui ..”命令,打开cmake-gui界面,确认源路径和构建路径无误,点击configure,确认选择“Unix Makefiles”+“Use default native compilers”,开始执行。
【报错1】执行过程报错,错误原因为下载ippicv失败,错误信息如下图所示:
解决方法:手动下载ippicv文件到本地(下载链接);修改ippicv对应的makefile文件(makefile文件在哪里),使其指向本地下载好的ippicv文件,如下图所示;保存makefile文件 ,重新configure,不再报错。
【继续配置cmake】在cmake界面中依次找到并设置以下两项,如图:
CMAKE_BUILD_TYPE: Release;
OPENCV_EXTRA_MODULES_PATH: opencv_contrib-3.4.8/modules;
(注意第二项MODULES_PATH必须指定到contrib下的modules)
【报错2】再次点击configure,报错,报错信息有若干条,大致意思是,contrib模块中的xfeatures2d模块的boostdesc和vgg两个子模块所需的依赖下载失败。
解决方法类似:手动下载依赖包并解压(下载链接),修改makefile文件(makefile文件在哪里),使其指向本地解压后的路径,保存makefile文件,重新configure,搞定!
【其它可能的问题:#.dat下载失败】
.dat能否下载成功与网络状况有关,若下载失败,解决办法同样是:手动下载(下载链接),修改makefile文件,使其指向本地下载好的文件,保存makefile,重新configure。
------------------tips------------------
提醒:在结束本步骤前,务必检查configure输出列表,确保没有红色报错,否则错误会体现在步骤四的make过程中。理论上,cmake过程应该下载好了所有依赖,make过程只需要读取本地文件即可。若make过程报错缺少某某或下载某某失败,原因多在于cmake过程并没有下载好这个某某。
直接执行make -j4(4线程执行,速度更快)命令,
sudo make install 命令
命令
代码验证:
https://www.zhihu.com/question/30049772?sort=created