最近在看《学习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的更多相关文章

  1. Linux下安装 Posgresql 并设置基本参数

    在Linux下安装Postgresql有二进制格式安装和源码安装两种安装方式,这里用的是二进制格式安装.各个版本的Linux都内置了Postgresql,所以可直接通过命令行安装便可.本文用的是Cen ...

  2. Linux下安装Tomcat服务器和部署Web应用

    一.上传Tomcat服务器

  3. Linux下安装使用Solr

    Linux下安装使用Solr 1.首先下载Solr.mmseg4j分词包.tomcat并解压,这用google.百度都可以搜索得到下载地址. 2.因为要使用到中文分词,所以要设置编码,进入tomcat ...

  4. Linux下安装tar.gz类型的jdk,并配置环境变量

    近期因要学习一门技术,必须在Linux下运行,故开始学习如何使用Linux. 在安装jdk时出现了困难,环境变量配置不成功,花了一天时间才搞定,特分享出来,供大家参考. Linux下安装jdk,步骤如 ...

  5. Linux下安装和配置JDK与Tomcat(升级版)

    在这个版本 Linux下安装和配置JDK与Tomcat(入门版) 的基础上优化升级 1.下载相关软件 apache-tomcat-6.0.37.tar.gz jdk-6u25-linux-i586-r ...

  6. Linux下安装cmake

    cmake是一个跨平台的编译工具,特点是语句简单,编译高效,相对于原有的automake更为高效,接下来说明在Linux下安装cmake工具的过程 首先去cmake官网下载cmake安装包,下载界面网 ...

  7. linux下安装安装pcre-8.32

    linux下安装安装pcre-8.32 ./configure --prefix=/usr/local/pcre 出现以下错误 configure: error: You need a C++ com ...

  8. CentOS linux下安装和配置Apache+SVN(用浏览器http方式访问SVN目录)

    在CentOS linux下安装SVN,我们可以进行以下步骤: 第一步:安装CentOS Linux操作系统,并在CentOS安装进行的同时,自定义安装这一步,一定要勾选Subversion(在“开发 ...

  9. Linux下安装Apache并以mod_wsgi方式部署django站点

    源码编译方式安装Apache 首先下载Apache源码压缩包,地址为http://mirror.bit.edu.cn/apache/httpd/ 继续下载apr和apr-util压缩包,地址为http ...

随机推荐

  1. MeteoInfoLab脚本示例:获取气团轨迹每个节点的气象数据

    读取HYSPLIT输出的轨迹数据文件和相应时间的气象数据文件,生成轨迹图层,循环每条轨迹的节点,读出该节点的经度.纬度.气压.时间,通过对气象数据插值获得该节点的气象数据.脚本程序: #------- ...

  2. python实现elasticsearch操作-CRUD API

    python操作elasticsearch常用API 目录 目录 python操作elasticsearch常用API1.基础2.常见增删改操作创建更新删除3.查询操作查询拓展类实现es的CRUD操作 ...

  3. pytest+allure生成接口自动化测试报告

    准备环境 1.安装pytest pip install pytest -i http://pypi.douban.com/simple pytest-ordering pytest.main([ &q ...

  4. Python自动化准备工作(pycharm安装)

    一.安装Python 1.下载python-3.7.0-amd64.exe后双击 2.勾选Add Python3.7 to PATH可不用配置环境变量 3.点击下一步,可以按默认路径,也可以自己选择路 ...

  5. linux(centos8):prometheus使用alertmanager发送报警邮件(prometheus 2.18.1/alertmanager 0.20.0)

    一,alertmanager的用途 1,Alertmanager的作用: Alertmanager是一个独立的报警模块, 它接收Prometheus等客户端发来的警报,并通过分组.删除重复等处理, 通 ...

  6. nfs4使用中的防火墙配置

    一,查看本地centos的版本: [root@localhost lib]# cat /etc/redhat-release CentOS Linux release 8.1.1911 (Core) ...

  7. java反射原来是这么玩的(反射一开,谁都不爱)

    反射的发展历史 1996年01月23日,jdk 1.0版本发布,代号为Oak(橡树). 这个代号为Oak(橡树)的版本,在发布后的第二年,1997年02月19日,发布jdk 1.1版本,这次版本发布中 ...

  8. python3配置socks5代理进行爬取

    一.代码 #!/usr/bin/python # -*- coding: UTF-8 -*- import requests import socket import socks SOCKS5_PRO ...

  9. maven 项目问题集锦

    问题1: 新建的maven项目,没有src/main/java 源文件夹,创建时提示已经存在,创建不了 解决方法: 右键build path -> configure build path -& ...

  10. Paraview教程

    快速入门 https://www.youtube.com/watch?time_continue=1017&v=Y1RATo2swM8 Cyprien Rusu系列 Paraview Vide ...