当前位置: 首页 > 编程日记 > 正文

【opencv】ubuntu14.04上编译opencv-4.0.1 + opencv_contrib-4.0.1

1、要求

编译器版本:c++11
cmake版本:3.5.1

2、安装camke
2.1 官网下载:https://cmake.org/download/

选择:Linux x86_64 cmake-3.14.1-Linux-x86_64.sh

2.2 安装:

将cmake-3.14.1-Linux-x86_64.sh拷贝考ubuntu中,执行该脚本;
按下空格键,直到出现授权提示,输入y,回车;
选择安装目录,输入y,回车(如果输入n,则不会创建带有版本信息的子目录)

3、编译、安装opencv-4.0.1、opencv_contrib-4.0.1

参考博客:
https://blog.csdn.net/luteresa/article/details/79916064
下载地址
opencv4:https://github.com/opencv
opencv_contrib:https://github.com/opencv/opencv_contrib/tags

3.1:安装依赖库
sudo apt-get install build-essential pkg-config
sudo apt-get install libjpeg8-dev libtiff5-dev libjasper-dev libpng12-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev
sudo apt-get install libgtk-3-dev
sudo apt-get install libatlas-base-dev gfortran
3.2 (系统中已有libopenblas.so,忽略这步)安装 LAPACK(OpenBLAS): LAPACK_LIBRARIES: /usr/lib/libopenblas.so

参考博客:https://blog.csdn.net/ivan_ljf/article/details/59479566
下载源码:git clone git://github.com/xianyi/OpenBLAS
安装gfortran: sudo apt-get install gfortran
编译:make FC=gfortran
安装:sudo make install (将OpenBLAS安装到/opt下)
执行以下命令完成安装

sudo ln -s /opt/OpenBLAS/lib/libopenblas.so /usr/lib/libblas.so.3
sudo ln -s /opt/OpenBLAS/lib/liblapack.so.3 /usr/lib/liblapack.so.3

sudo rm /usr/lib/libblas.so.3
sudo rm /usr/lib/liblapack.so.3
sudo ln -s /etc/alternatives/libblas.so.3 /usr/lib/libblas.so.3
sudo ln -s /etc/alternatives/liblapack.so.3 /usr/lib/liblapack.so.3

/usr/lib$ ls libblas.so.3 -alh
lrwxrwxrwx 1 root root 30 7月 30 2018 libblas.so.3 -> /etc/alternatives/libblas.so.3
zet@zet-VirtualBox:/usr/lib$ ls liblapack.so.3 -alh
lrwxrwxrwx 1 root root 32 7月 30 2018 liblapack.so.3 -> /etc/alternatives/liblapack.so.3

3.3 cmake配置opencv

添加源码目录
添加编译目录

点击【Configure】后配置编译选项
* BUILD_JPEG
* BUILD_PNG
* BUILD_SHARED_LIBS
* BUILD_opencv_world
* WITH_GTK_2_X
* WITH_QT
* BUILD_TESTS //为了加快编译,可以不编译测试代码
* OPENCV_ENABLE_NONFREE
* CMAKE_INSTALL_PREFIX //选择安装目录

配置opencv_contrib-4.0.1相关的
* OPENCV_EXTRA_MODULES_PATH //设置opencv_contrib-4.0.1/modules目录
* BUILD_opencv_cvv //去掉,否则会报错:undefined reference to `vtable for cvv::qtutil::Signal’

3.4 缺少libicu*.56的库的解决方法

(https://blog.csdn.net/fb_help/article/details/80633049)
在cmake-gui中选中Advanced(高级),输入CMAKE_CXX_FLAGS,设置值为-L/home/laoer/qt/Qt5.6.3/5.6.3/gcc_64/lib
(如果该设置不起作用,可以尝试将qt库路径/home/laoer/qt/Qt5.6.3/5.6.3/gcc_64/lib添加到环境变量中
在~/.bashrc中添加export LD_LIBRARY_PATH=/home/laoer/qt/Qt5.6.3/5.6.3/gcc_64/lib:$LD_LIBRARY_PATH)

配置时会下载:ippicv_2019_win_intel64_20180723_general.zip
因为网络原因下载很慢甚至失败,下面是手动下载的步骤:

在https://download.csdn.net/download/leon_yy/10803916下载,
将下载的文件拷贝到/home/zet/tools/opencv/opencv-4.0.1-depend目录下(根据自己环境设置)
然后修改配置文件opencv源码中3rdparty/ippicv/ippicv.cmake
将47行的
“https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}ippicv/”
改为手动下载的文件的本地路径
“file:/home/zet/tools/opencv/opencv-4.0.1-depend”(根据自己环境设置)
重新【Configure】,界面不显示红色表明配置成功

点击【Generate】后在build目录中生成Makefile,

3.5 编译、安装
make
3.6 错误处理

1)boostdesc.cpp:653:37: fatal error: boostdesc_bgm.i: No such file or directory
解决方法:https://github.com/opencv/opencv_contrib/issues/1301
在构建目录下CMakeDownloadLog.txt中搜索boostdesc_bgm.i,有它的下载地址,下载后,拷贝到opencv_contrib/modules/xfeatures2d/src/ 路径下
}

3.7 make install

//注意安装目录是cmake-gui中设置的CMAKE_INSTALL_PREFIX

相关文章:

软件开发文档模板 (学习)

1 可行性研究报告   可行性研究报告的编写目的是:说明该软件开发项目的实现在技术、经济和社会条件方面的可行性;评述为了合理地达到开发目标而可能先择的各种方案;说明论证所选定的方案。 可行性研究报告的编写内容要求如下: …

Unix数据中心主宠儿

曾几何时UNIX一直是除个人电脑之外的领域中应用最为广泛的操作系统,并且为现代操作系统的成型奠定了基础,可以说UNIX的历史就像应用程序本身一样耐人寻味。UNIX的过去回首1983年,肯.托马森和D.里奇由于对操作系统发展史以及UNIX操作系统应用所…

【AI】基本概念

1、什么是人工智能 人工智能(AI)是通过研究、开发,来找到用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的综合性的科学技术。其表现为,让计算机系统通过机器学习等方式,来获得可以履行原本只有依…

在浏览器中进行深度学习:TensorFlow.js (四)用基本模型对MNIST数据进行识别

2019独角兽企业重金招聘Python工程师标准>>> 在了解了TensorflowJS的一些基本模型的后,大家会问,这究竟有什么用呢?我们就用深度学习中被广泛使用的MINST数据集来进行一下手写识别的操作。 MINST数据集 MINST是一组0到9的手写数字…

不止临床应用,AI还要帮不懂编程的医生搞科研

近日,推想科技发布 AI 学者科研平台 InferScholar Center,该平台为更多的医生提供零门槛的 AI 科研能力,让医生可以快速将深度学习、影像组学以及文本数据处理相关的前沿技术应用到自己的临床科研实践中,他们将为平台上的医疗科研…

rhel6Inode详解

在Linux文件系统中,很多人对Inode都不太明白,今天我就和大家一起来分享一下我对Inode的认识,如果有理解错误的地方,请大家多多批评指点。在上一篇一天一点学习Linux之认识文件系统中,在最后给出了一张EXT3文件系统结构…

争论不休的TF 2.0与PyTorch,到底现在战局如何了? | 技术头条

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」全日程揭晓,请扫码咨询 ↑↑↑作者 | Jeff Hale译者 | Jackey编辑 | Jane出品 | AI科技大本营(id:rgznai100)【导语】 TensorFlow 2.0 和 PyTorch 1.0 陆续发布后,…

struts2实验2:struts2.xml action中* ,{}以及${}

p.s 关键在于struts.xml中的匹配&#xff0c;使用* ,{}以及${}可以让代码更加简洁清晰 代码核心思路 在struts.xml中通过路由(url)去指定控制逻辑的Action中的方法,例如 <package name"admin" namespace"/admin" extends"struts-global">&…

【Ubuntu】dpkg-deb -c :查看deb文件中的内容

1、dpkg-deb -c :查看deb文件中的内容 $ dpkg-deb -c packageeg&#xff1a; $ dpkg-deb -c sogoupinyin_2.2.0.0108_amd64.deb drwxr-xr-x root/root 0 2018-04-18 16:50 ./ drwxr-xr-x root/root 0 2018-04-18 16:50 ./etc/ drwxr-xr-x root/root …

捕获Camera并保存图片到本地(照相功能) -samhy

Flex博文 捕获Camera并保存图片到本地(照相功能) -samhy作者:admin 日期:2010-07-12字体大小: 小 中 大捕获Camera并保存图片到本地(照相功能)这几天对Camera类进行了一下规整&#xff0c;并利用JPGEncoder类实现了照相的功能,代码如下&#xff1a; XML/HTML代码import flash.m…

【C++】模板函数的声明和定义必须在同一个文件中

1、问题描述 习惯性的将函数的定义和实现&#xff0c;分别写在头文件和源文件&#xff08;.cpp&#xff09;中。今天也按照这个习惯实现了一个模板函数。然后编译时报错 ... error: undefined reference to ...2、原因分析 c中模板的声明和定义不能分开。C中每一个对象所占用…

基于AWS-ELK部署系统日志告警系统

前言 运维故障排障速度往往与监控系统体系颗粒度成正比&#xff0c;监控到位才能快速排障 在部署这套系统之前&#xff0c;平台所有系统日志都由GraylogZabbix&#xff0c;针对日志出现的错误关键字进行告警&#xff0c;这种做法在运维工作开展过程中暴露出多个不足点&#xff…

《周志华机器学习详细公式推导版》发布,Datawhale开源项目pumpkin-book

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」全日程揭晓&#xff0c;请扫码咨询 ↑↑↑来源 | Datawhale&#xff08;ID&#xff1a;Datawhale&#xff09; 如果让你推荐两本国内机器学习的入门经典作&#xff0c;你会推荐哪些呢&#xff1f;相信大家同我一样&#xff…

JVM内存泄漏检测与处理

JVM内存泄漏检测与处理&#xff08;JVM Memory Leak detection and handling&#xff09; JVM垃圾回收机制的原则和方法 JVM垃圾回收中一个基本原则是对象没有被引用或则引用其它对象&#xff0c;换句话说当一个对象在heap 中是隔离(isolation)状态的时候&#xff0c;垃圾回收器…

【Dlib】dlib和opencv的互转

一、dlib::matrix转换成cv::Mat 1、注意事项&#xff1a; 1&#xff09;将dlib::matrix转成BGR格式后&#xff0c;再转换成cv::Mat&#xff0c;因为cv::Mat中是按照BGR顺序存储 2&#xff09;注意最后添加的cv::Mat::clone()函数&#xff0c;因为dlib::toMat(tmp)返回的mat数…

原创 人物志|山东省临沭县 - 一位身残志坚的奋斗青年 - 吴忠军

原创 人物志|山东省临沭县 - 一位身残志坚的奋斗青年 - 吴忠军 02972018-04-29 16:15:27 人物志|山东省临沭县 - 一位身残志坚的奋斗青年 - 吴忠军 齐鲁晚报 2018年04月29日 2018年4月29日&#xff0c;山东省临沂市临沭县&#xff0c;一位年轻的小伙子。吴忠军&#xff0c;山东…

百度SLG拿下前锤子科技CTO钱晨,还要合并小鱼在家? | 极客头条

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」全日程揭晓&#xff0c;请扫码咨询 ↑↑↑整理 | 一一出品 | AI科技大本营&#xff08;id&#xff1a;rgznai100&#xff09;2016 年 7 月&#xff0c;锤子科技前 CTO 钱晨从该公司退休的消息被证实&#xff0c;关于其离职的…

【Dlib】dlib实现深度网络学习之 input层

1、 dlib::input 模板类&#xff0c;深度神经网络的简单输入层&#xff0c;它将某种图像作为输入并将其加载到网络中。 这是一个基本的输入层&#xff0c;它只是简单地将图像复制到一个张量中。 注意&#xff1a;dlib::input只支持输入dlib::matrix和dlib::array2d类型&#x…

首发 | 13篇京东CVPR 2019论文!你值得一读~ 技术头条

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」全日程揭晓&#xff0c;请扫码咨询 ↑↑↑编者按&#xff1a;计算机视觉和模式识别大会 CVPR&#xff08;Conference on Computer Vision and Pattern Recognition&#xff09;作为人工智能领域计算机视觉方向的重要学术会议…

Windows 活动目录(AD)服务器系统升级到2012之活动目录角色迁移(三)

4.5迁移服务器角色到AD20121. 打开powershell&#xff0c;使用命令迁移服务器角色到AD2008输入命令Ntdsutil输入命令Roles输入命令Connections输入命令Connect to server AD2012&#xff0c;连接AD2012控制器输入命令QUIT输入Transfer infrastructure master命令&#xff0c;转…

《星际争霸2》引擎技术解析

就在SIGGRAPH大会刚结束之后&#xff0c;AMD和暴雪在AMD官方网站上放出了《星际争霸II》的官方技术文档&#xff0c;通过游戏引擎技术的展示让星际迷们感受到越来越多的惊喜。画面优化给CPU带来考验着色方面&#xff0c;在使用原型的基础上利用3D Studio MAX让程序员对整体效果…

回顾与展望:大热的AutoML究竟是什么? | 技术头条

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」全日程揭晓&#xff0c;请扫码咨询 ↑↑↑来源 | 第四范式编者按&#xff1a;AutoML&#xff08;Automatic Machine Learning&#xff0c;自动机器学习&#xff09;旨在研究在没有专业知识的情况下使用的低门槛甚至零门槛的…

【Python】深度学习中将数据按比例随机分成随机 训练集 和 测试集的python脚本

深度学习中经常将数据分成 训练集 和 测试集&#xff0c;参考博客&#xff0c;修改python脚本 randPickAITrainTestData.py 。 功能&#xff1a;从 输入目录 中随机检出一定比例的文件或目录&#xff0c;移动到保存 测试集目录 中&#xff0c;原输入目录作为训练目录。 import…

docker 系列之 配置阿里云镜像加速器

1.登录阿里云 2.登录后找到右上角的“管理中心”,点击进入后》点击“镜像加速器”;剩下的安装文档配置就好 问题1&#xff1a;配置完后还是提示&#xff1a;Tag latest not found in repository 【本人也是在这里被困了好久,尝试了各种方法】 解决方案&#xff1a;最后发现这里…

LVM-HOWTO/学习笔记(二)

1. 在3块scsi磁盘上创建lv Run pvcreate on the disks # pvcreate /dev/sda # pvcreate /dev/sdb # pvcreate /dev/sdc Create a volume group # vgcreate my_volume_group /dev/sda /dev/sdb /dev/sdc/ Run vgdisplay to verify volume group # vgdisplay # vgdisplay…

【python】使用python脚本将LFW数据中1672组同一个人多张照片拷贝出来

使用python脚本将LFW数据中1672组同一个人多张照片拷贝出来 dataCleaning4multiple.py 源码如下&#xff1a; import os, random, shutil import sys, getopt import stringdef getDir(argv):inPath outPath num2try:opts, args getopt.getopt(argv,"hi:o:n:",[&…

EXP6 信息搜集与漏洞扫描

1.实验有关问题 &#xff08;1&#xff09;哪些组织负责DNS&#xff0c;IP的管理。 ICANN是一个集合了全球网络界商业、技术及学术各领域专家的非营利性国际组织&#xff0c;负责在全球范围内对互联网唯一标识符系统及其安全稳定的运营进行协调&#xff0c;它能决定域名和IP地址…

百度发的208亿春晚红包,靠这样的技术送到了你手上 | 解读

2019 年的春晚红包项目对百度而言是一次大考&#xff0c;背后需要强大的技术来支撑。如你所见&#xff0c;百度不负“技术大厂”的标签&#xff0c;春晚红包期间系统稳定运行&#xff0c;没有出现宕机事故。在这样一个庞大而复杂的项目面前&#xff0c;他们是如何去用技术去化解…

一步一步学Silverlight 2系列(10):使用用户控件

概述 Silverlight 2 Beta 1版本发布了&#xff0c;无论从Runtime还是Tools都给我们带来了很多的惊喜&#xff0c;如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython&#xff0c;对JSON、Web Service、WCF以及Sockets的支持等一系列新的特性。《一步一步学Silverlig…

何恺明的GN之后,权重标准化新方法能超越GN、BN吗? | 技术头条

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」&#xff0c;购票请扫码咨询 ↑↑↑作者 | Siyuan Qiao、Huiyu Wang、Chenxi Liu、Wei Shen、Alan Yuille&#xff08;Johns Hopkins University&#xff0c;约翰霍普金斯大学&#xff09;译者 | 刘畅编辑 | Jane出品 | AI科…