在Linux下安装C++的OpenCV 3
最近在看《学习OpenCV3》这本书,所以记录下我在ubuntu16.4下搭建C++版本OpenCV 3.4.5的过程。首先请确保cuda,gcc, g++都安装好了,我这里是cuda 10.0,gcc-4.9.4和gcc-5.5.0,它们之间的版本只要是配套的应该就没问题,我原本是按照Francesco Piscani油管视频:OpenCV C++ on Linux Tutorial 1 - OpenCV 3.2 Installation on Ubuntu 16.04 进行安装OpenCV 3.1.0 ,但是编译老是报错,后面怀疑是自己用的cuda版本有点新,而以前的Opencv 3.1.0有点跟不上配置,但之后就按照Davidhwj的 linux安装及配置c++的opencv库 进行配置成功了。
安装步骤:
1. 更新系统源
sudo apt-get update
2. 安装依赖项
sudo apt-get install cmake
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev
3. 下载OpenCV 3.4.5
官网下载地址:https://opencv.org/releases/page
之后将其解压至根目录下,我这里是home/下。之后创建release文件夹:
cd opencv-3.4.5
~/opencv-3.4.5$ mkdir release
4. 设置cmake参数
~/opencv-3.4.5/$ cd release
~/opencv-3.4.5/release/$ sudo cmake
~/opencv-3.4.5/release/$ sudo cmake -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON ..
或者使用默认安装设定:
~/opencv-3.4.5/release/$ sudo cmake ..
在cmake过程中常会报错ippicv_2019_lnx_intel64_general_20180723.tgz下载超时,解决办法就是到官方Github源码里下载该压缩包,之后打开opencv-3.4.5/3rdparty/ippicv/ippicv.cmake文件,然后复制下图中选中的命名后缀:

在opencv-3.4.5/3rdparty/ippicv/下创建文件downloads,然后在downloads下创建文件名为linux-32e315a5b106a7b89dbed51c28f8120a48b368b4,并将之前下载的ippicv压缩包放入该文件夹下,如下图所示:

最后再次打开opencv-3.4.5/3rdparty/ippicv/ippicv.cmake文件修改原来网络压缩包下载地址为手动下载好压缩包的文件地址,如下图所示:

现在重新cmake就能成功了!
5. 编译OpenCV
~/opencv-3.4.5/release/$ sudo make
~/opencv-3.4.5/release/$ sudo make install
6. 配置环境变量
~/opencv-3.4.5/release/$ sudo gedit /etc/ld.so.conf.d/opencv.conf
在文件内添加一行:/usr/local/lib
~/opencv-3.4.5/release/$ sudo ldconfig # 更新系统的共享链接库
sudo gedit /etc/bash.bashrc
在bashrc里末尾加入以下两行:
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export LD_LIBRARY_PATH=/home/lp/soft/opencv-3.4.5/release/lib:$LD_LIBRARY_PATH
# 保存bashrc后,使其生效:
~/opencv-3.4.5/release/$ source /etc/bash.bashrc
7. 测试OpenCV安装是否正确
在opencv-3.4.5/samples/cpp下创建一个测试代码并放入一张图片如下:

用下面的命令创建测试代码:
~/opencv-3.4.5/samples/cpp$ nano ex2_1.cpp
#include <opencv2/opencv.hpp> //Include file for every supported OpenCV function
int main( int argc, char** argv ) {
cv::Mat imgOriginal;
imgOriginal = cv::imread("building.png");
//cv::Mat img = cv::imread("building.jpg");
if( imgOriginal.empty() ) return -1;
cv::namedWindow( "Example1", cv::WINDOW_AUTOSIZE );
cv::imshow( "Example1", imgOriginal );
cv::waitKey( 0 );
cv::destroyWindow( "Example1" );
return 0;
}
g++运行下面的命令:
~/opencv-3.4.5/samples/cpp$ g++ ex2_1.cpp -o ex2_1 `pkg-config opencv --cflags --libs`
~/opencv-3.4.5/samples/cpp$ ./ex2_1
这是如果弹出图片,说明OpenCV安装没问题,可以正常使用了。
在Linux下安装C++的OpenCV 3的更多相关文章
- Linux下安装 Posgresql 并设置基本参数
在Linux下安装Postgresql有二进制格式安装和源码安装两种安装方式,这里用的是二进制格式安装.各个版本的Linux都内置了Postgresql,所以可直接通过命令行安装便可.本文用的是Cen ...
- Linux下安装Tomcat服务器和部署Web应用
一.上传Tomcat服务器
- Linux下安装使用Solr
Linux下安装使用Solr 1.首先下载Solr.mmseg4j分词包.tomcat并解压,这用google.百度都可以搜索得到下载地址. 2.因为要使用到中文分词,所以要设置编码,进入tomcat ...
- Linux下安装tar.gz类型的jdk,并配置环境变量
近期因要学习一门技术,必须在Linux下运行,故开始学习如何使用Linux. 在安装jdk时出现了困难,环境变量配置不成功,花了一天时间才搞定,特分享出来,供大家参考. Linux下安装jdk,步骤如 ...
- Linux下安装和配置JDK与Tomcat(升级版)
在这个版本 Linux下安装和配置JDK与Tomcat(入门版) 的基础上优化升级 1.下载相关软件 apache-tomcat-6.0.37.tar.gz jdk-6u25-linux-i586-r ...
- Linux下安装cmake
cmake是一个跨平台的编译工具,特点是语句简单,编译高效,相对于原有的automake更为高效,接下来说明在Linux下安装cmake工具的过程 首先去cmake官网下载cmake安装包,下载界面网 ...
- linux下安装安装pcre-8.32
linux下安装安装pcre-8.32 ./configure --prefix=/usr/local/pcre 出现以下错误 configure: error: You need a C++ com ...
- CentOS linux下安装和配置Apache+SVN(用浏览器http方式访问SVN目录)
在CentOS linux下安装SVN,我们可以进行以下步骤: 第一步:安装CentOS Linux操作系统,并在CentOS安装进行的同时,自定义安装这一步,一定要勾选Subversion(在“开发 ...
- Linux下安装Apache并以mod_wsgi方式部署django站点
源码编译方式安装Apache 首先下载Apache源码压缩包,地址为http://mirror.bit.edu.cn/apache/httpd/ 继续下载apr和apr-util压缩包,地址为http ...
随机推荐
- 多测师全方位面试题腾讯 _自动化面试题_高级讲师肖sir
作答注意:候选人可以两题都做,也可以两题任选一题做即可. 笔试题一:1.查询 https://www.newsmth.net/nForum/#!board/PieLove2.获取发贴时间是2020年8 ...
- redhat系统服务器重启后提示An error occurred during the file system check.
问题描述 浪潮一台NF8480M3外观红灯报警,鉴于无法登陆带外,只能对服务器进行断电重启操作 问题现象 重启后进入开机过程并报错,报错如下内容及图片如下所示,正常来说进入此界面后直接输入root密码 ...
- go读取excel表格数据
go读取excel表格数据 使用工具 github.com/Luxurioust/excelize 百度到的都是使用这个 实际上已经改名了 github.com/360EntSecGroup-Skyl ...
- property和setter装饰器
# property装饰器 # 作用: 将一个get方法转换为对象的属性. 就是 调用方法改为调用对象 # 使用条件: 必须和属性名一样 # setter方法的装饰器: # 作用:将一个set方法转换 ...
- DefenseCode宣布集成GitHub为开发人员提供SAST解决方案
DefenseCode集团宣布,DefenseCode静态应用程序安全测试(SAST)ThunderScan解决方案现可作为一个GitHub Action,提供30多种语言的安全漏洞分析,并将详细的漏 ...
- ValidatorException-异常
Java在发送Https请求的时候,不可避免的会发生SSL证书认证失败 错误信息:sun.security.validator.ValidatorException: PKIX path buildi ...
- Ubuntu使用mail命令发送邮件
sudo apt-get install mailutils 如下命令发送邮件: mail -s "Test mail from ubuntu" ckboss@y< ...
- Hadoop1.0 和 Hadoop2.0
date: 2018-11-16 18:54:37 updated: 2018-11-16 18:54:37 1.从Hadoop整体框架来说 1.1 Hadoop1.0即第一代Hadoop,由分布式存 ...
- mybatis逆向工程配置
1.准备配置文件 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConf ...
- JAVA NIO 基础学习
package com.hrd.netty.demo.jnio; import java.io.BufferedReader; import java.io.IOException; import j ...