Ubuntu18.04配置Opencv3.4.9

前言

源码编译安装Opencv完整步骤以及问题总结。

一.下载opencv以及opencv_contrib

可以去github中,在右侧的release中找到需要的版本,opencv以及opencv_contrib版本号对应即可。
下载解压以后,将opencv_contrib放入opencv文件夹中,并在opencv文件夹中新建build文件夹,用来编译使用。

二.安装依赖

$ sudo apt-get update
$ sudo apt-get upgrade

因为安装 libjasper-dev 这个依赖包可能会出问题,所以先执行以下命令,在执行后续依赖包的安装

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

之后,安装其他依赖

$ sudo apt-get install libgtk-3-dev libgtk2.0-dev pkg-config
$ sudo apt-get -y install build-essential cmake
$ sudo apt-get -y install libavcodec-dev libavformat-dev libswscale-dev 
$ sudo apt-get -y install python3-dev python3-numpy python-dev python-numpy 
$ sudo apt-get -y install libpython3.6-dev libtbb2 libtbb-dev 
$ sudo apt-get -y install libjpeg-dev libpng-dev libtiff5-dev libjasper-dev libdc1394-22-dev libavcodec-dev libavformat-dev 
$ sudo apt-get -y install libswscale-dev libv4l-dev liblapacke-dev libopenexr-dev libxvidcore-dev libx264-dev 
$ sudo apt-get -y install libatlas-base-dev gfortran ffmpeg

安装 cmake GUI

$ sudo apt-get install cmake-gui

三.使用cmake GUI进行配置

$ cd build
$ cmake-gui ../opencv-3.4.9

步骤如下:

1.点击Configure,选择Unix Makefile,选Use default native compliers。
2.按照顺序,然后 finish,此时 Configure 按钮变为 Stop ,表示配置进行中。
3.Configure 结束后,如果 cmake 的主界面仍有红色区域,则再次点击 Configure 进行配置,直到红色区域完全消失。
4.红色区域没了之后,进行下一步的配置
(1)在 CMAKE_BUILD_TYPE 值处选择 Release
(2)CMAKE_INSTALL_PREFIX 选择安装的路径   这里我选择 build 目录下自己新建的 myInstall 文件夹。
(3)在 OPENCV_EXTRA_MODULES_PATH 处,为其设置 opencv_contrib-3.4.9 的路径,精确到 /modules 目录
(4)勾选 OPENCV_PYTHON3_VERSION
(5)添加 python 的路径
    PYTHON2_INCLUDE_DIR2  /usr/include/x86_64-linnx_gnu/python2.7
    PYTHON3_INCLUDE_DIR3  /usr/include/x86_64-linnx_gnu/python3.6m
(6)勾选 OPENCV_GENERATE_PKGCONFIG   这个很重要,是生成 opencv.pc 的
5.再次点击 Configure 进行配置,如果还有红色就继续 Configure ,直到没有红色才可进行下一步。
红色区域没了之后还要注意下输出信息,滚一下看看有没有错误信息(通常也是红色字体,很显眼),一般是下载问题,如果有错误信息,就继续 Configure ,直到没有错误信息。
    最后,点击 Generate,出现 “Generating done” 则意味着 cmake 的工作结束了。

正常来讲,上面第五步提到的下载问题是一定会出现的,这是因为服务器响应超时导致文件无法下载造成的,那么可以提前下载号之后,放入到制定的文件夹,并且替换即可。
1.根据输出的红色内容,可以找到一个"xxxdownload.txt"文件的路径,打开查看,就会发现这些文件本来应该被下载在哪儿,并且文件名称是什么。此时将我提供的这些文件 密码: mblb下载。根据对应的名称给其重命名,并放入制定路径。
2.如果不想查看*download.txt,也可以在opencv文件夹中Ctrl+h,显示隐藏文件,会看到.cache文件夹。
(1)data文件夹中会有face_landmark_model.dat的缓存文件,将其名称复制后,重命名给下载好的face_landmark_model.dat,之后替换原有的缓存文件。
(2)(3)ippicv和xfeatures2d文件夹也是如此操作。
此时再次点击 Configure,就发现没有红色输出了,最后,点击 Generate,出现 “Generating done” 则意味着 cmake 的工作结束了。

四.make&&make install

在build 目录下输入下面的命令,-j8 意思是用8个 CPU 去 make

$ sudo make -j8
#可以查看你的系统多少个
$ cat /proc/cpuinfo | grep "processor" | wc -l  

之后

$ sudo make install

五.进行环境配置

1.pkg-config
首先,测试显示 OpenCV 版本号,命令行输入以下命令

$ kg-config --modversion opencv

解释一下 pkg-config 这个什么意思吗,pkg-config 就是我们告诉程序编译时从哪里找头文件和库相关信息。
opencv.pc放哪里?它默认会去/usr/lib/pkgconfig 里面找 opencv.pc 。当它在这里找不到 opencv.pc ,它就会到 PKG_CONFIG_PATH 所设置的环境变量去找,如果还没找到就会报错,比如上两个测试的报错。
所以:如果是 opencv4.pc 的就把下面提到的 opencv.pc 改为 opencv4.pc,当然你也可以重命名为 opencv.pc。
方法一:移动 opencv.pc 到 /usr/lib/pkgconfig
方法二:把 opencv.pc 放在你想放的路径,然后
(1). 打开 bash.bashrc

$ sudo gedit /etc/bash.bashrc

(2). 在文件后添加(改为自己的路径)
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/zxzn/opencv-3.4.9/build/myInstall/lib/pkgconfig
(3) 更新配置

$ sudo updatedb

2.配置库路径

$ sudo gedit /etc/ld.so.conf.d/opencv.conf 

添加你自己的 lib 路径,就比如我的如下:
/home/zxzn/opencv-3.4.9/build/myInstall/lib
保存后,更新一下

$ sudo ldconfig

最后,再进行验证

$ pkg-config --modversion opencv

我的输出为3.4.9.
如果没有正常输出可以稍微等待或者重启即可。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,951评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,606评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,601评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,478评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,565评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,587评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,590评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,337评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,785评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,096评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,273评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,935评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,578评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,199评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,440评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,163评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,133评论 2 352