在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 ...
随机推荐
- Vue 学习 二 路由详解
1 roter-link 和roter-view组件 2路由配置 a.动态路由 b.嵌套路由 c.别名路由 d.命名路由 3 Js操作路由 4 重定向和别名 1为路由默认绑定 2 使用组件 根据 路由 ...
- 超简单的CDH6部署和体验(单机版)
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- centos8安装fastdfs6.06集群方式三之:storage的安装/配置/运行
一,查看本地centos的版本 [root@localhost lib]# cat /etc/redhat-release CentOS Linux release 8.1.1911 (Core) 说 ...
- python selenium 自动登陆
#-*- coding:utf8 -*- # 导入selenium2中的webdriver库 from time import sleep from selenium import webdriver ...
- 《Kafka笔记》3、Kafka高级API
目录 1 Kafka高级API特性 1.1 Offset的自动控制 1.1.1 消费者offset初始策略 1.1.2 消费者offset自动提交策略 1.2 Acks & Retries(应 ...
- CentOS8安装本地mail工具-mailx-12.5-29.el8.x86_64
概述 服务器需要发告警邮件 查找是否已安装 [root@C8-1 ~]# type mail -bash: type: mail: not found [root@C8-1 ~]# which mai ...
- 操作系统OS基础
OS: Operating System 操作系统,通用目的的软件程序 主要功能:硬件驱动 进程管理 内存管理 网络管理 安全管理 文件管理OS分类:服务器OS:CentOS,Ubuntu,Windo ...
- Learning Attention-based Embeddings for Relation Prediction in Knowledge Graphs
这篇论文试图将GAT应用于KG任务中,但是问题是知识图谱中实体与实体之间关系并不相同,因此结构信息不再是简单的节点与节点之间的相邻关系.这里进行了一些小的trick进行改进,即在将实体特征拼接在一起的 ...
- 原生JS实现动态折线图
原生JS实现动态折线图 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> & ...
- 八皇后C++版本
emmmm~刚刚学C++,写一个八皇后,凑合看吧嘤嘤嘤 1 #include <iostream> 2 #include<cstdlib> 3 #include<cmat ...