linux安装及配置c++的opencv库
linux安装及配置c++的opencv库
前言:
最近想搞个机器视觉的比赛,要求是linux+opencv环境,没有做过opencv开发的我配置环境就配了两天,看来很多乱七八糟的博客,终于装好了。网上的大神的博客太详细,太麻烦,还不通用,所以学习了这么多经验后写这篇博客分享给和我一样的入门级选手,重复一遍,这是一篇为入门选手提供便利的博客。
下面有一个步骤出现的问题,我忘记是哪一个步骤了,好像是CMakeCache.txt文件相关,好像把这个文件删掉就行了。解决方法
我的环境:
os:ubuntu16.4.5-amd64
gcc:gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609
opencv:OpenCV-3.4.5下载地址
g++:g++ (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609
步骤:
1、更新ubuntu上的软件源,不要担心,中端里执行两个命令就行
命令一:sudo apt-get update
命令二:sudo apt-get upgrade
第二个命令可能会出现错误:sudo apt-get grade Could not get lock /var/lib/dpkg/lock - open (11: Resource.....解决方法
2、安装cmake(用来搭建opencv的,不管了执行两个命令就行)
命令一: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(博客开头已给出链接)
解压后如图(其中的release文件夹是下一步自己建的)

4、设置cmake参数(别担心,还是继续傻瓜式运行命令)
在解压后文件夹里新建release文件夹,在在终端里进入release文件夹(也可以直接在release文件夹内右键打开Terminal)。
要运行的命令(不要漏掉空格和两点,下面两个命令随便运行一个不报错就行):
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 ..
或者直接采用默认
sudo cmake ..
5、编译opencv(还是只要运行命令)
这时终端(Terminal)的路径还是在release文件夹内
sudo make
sudo make install
6、配置环境变量(这是唯一有点麻烦的一般,特别是不会vim操作的话)
sudo gedit /etc/ld.so.conf.d/opencv.conf(可自行创建)
末尾添加一行:/usr/local/lib
sudo ldconfig # 更新一下系统的共享链接库
sudo gedit /etc/bash.bashrc
末尾添加一行:
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
vim /etc/bash.bashrc #vim编辑文件(不会vim可能有难度)
# 在文件末尾加入
export LD_LIBRARY_PATH=/home/lp/soft/opencv-3.4.2/release/lib:$LD_LIBRARY_PATH
#上面保存退出vim后再运行以下命令:
source /etc/bash.bashrc
上面设计vim编辑器的使用,如果不会又不愿百度学习的话可以用gedit编辑器,即把命令vim /etc/bash.bashrc改成gedit /etc/bash.bashrc
如果编辑完文件后提升保存失败(英文提示文件为只读,可以百度一下chmod命令的使用,把文件权限改为777就行,具体百度以下吧),提供参考链接菜鸟或者chmod命令的博客
7、试运行使用了opencv的c++代码
可能还涉及一个g++的安装,也就一个命令而已,自行百度吧。
我的运行结果如下:

linux安装及配置c++的opencv库的更多相关文章
- Linux 安装oracle10g 配置dataguard 介绍和步骤
DataGuard是甲骨文推出的一种高可用性数据库方案,在Oracle 8i之前被称为Standby Database.从Oracle 9i开始,正式更名为Data Guard.它是在 ...
- Linux 安装及配置 Nginx + ftp 服务器
Nginx 安装及配置 一.Nginx 简介: Nginx("engine x") 是一款是由俄罗斯的程序设计师 Igor Sysoev 所开发高性能的 Web和 反向代理服务器, ...
- 基于深度学习的人脸识别系统Win10 环境安装与配置(python+opencv+tensorflow)
一.需要下载的软件.环境及文件 (由于之前见识短浅,对Anaconda这个工具不了解,所以需要对安装过程做出改变:就是Python3.7.2的下载安装是可选的,因为Anaconda已经为我们解决Pyt ...
- Arch Linux 安装、配置、美化和优化
国庆假期玩了下Arch Linux,发现这货跟Ubuntu之流相差甚远,甚难调教,而且安裝过程全命令行,会有各种问题,各种知识... --- 安装引导器--- -------------------- ...
- Microsoft SQL Server for Linux安装和配置
虽说mssql for linux早已经出来了,但原本没有打算这么早就去尝试的,无奈之下还是得先尝试用了,这里分几篇介绍我在用mssql for linux时遇到的问题,不得不说作为先吃螃蟹的人总是要 ...
- Linux学习(一)--VMware下Linux安装和配置
本片随便将给大家讲述linux在VM虚拟机上安装及终端的安装和配置 一.Linux介绍 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线 ...
- Redis - (Linux)安装与配置
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key - value 缓存产品有以下三个特点: 1:Redis支持数据的持久化,可以将内存 ...
- linux安装和配置 mysql、redis 过程中遇到的问题记录
linux下部署mysql和redis网上的教程很多,这里记录一下我部署.配置的过程中遇到的一些问题和解决办法. mysql ①安装完成后启动的时候报错 Starting MySQL.The serv ...
- deepin linux安装与配置
作者:相思羽 出处:http://www.cnblogs.com/xiang-siyu 欢迎转载,也请保留这段声明.谢谢! deepin linux是由深度开发的操作系统,基于debian,内置了搜 ...
随机推荐
- C#: Delegate and Event
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- window对象中的一些重要的属性和方法(笔记)
setTimeout()方法用来实现一个函数在指定的毫秒数之后运行:setTimeout()返回一个值,这个值可以传递给clearTimeout()用于取消这个函数的执行.由于历史原因,setTime ...
- HDU 2058 The sum problem 数学题
解题报告:可以说是一个纯数学题,要用到二元一次和二元二次解方程,我们假设[a,b]这个区间的所有的数的和是N,由此,我们可以得到以下公式: (b-a+1)*(a+b) / 2 = N;很显然,这是一个 ...
- Python练习-跨目录调用模块
层级结构: dir1 ---hello.py dir2 ---main.py 其中,hello.py: def add(x,y): return x+y main.py如何能调用到hello.py中的 ...
- react 带参数事件方法不立即执行
handleClick:()=>{this.to_step('to_step3_2')}}
- 弹性盒模型justify-content属性
justify-content是应用于父容器上来规定子元素在水平方向上的对齐方式的. flex-start 左对齐 flex-end 右对齐 center 居中 space-betten 两端对齐,两 ...
- 20165230 2017-2018-2 《Java程序设计》第8周学习总结
20165230 2017-2018-2 <Java程序设计>第8周学习总结 教材学习内容总结 第十二章 java多线程机制 一个进程在其执行过程中,可产生多个线程.线程是比进程更小的执行 ...
- torch.nn.CrossEntropyLoss
class torch.nn.CrossEntropyLoss(weight=None, size_average=True, ignore_index=-100, reduce=True) 我这里没 ...
- linux sigaction 函数 用法释义
使用 sigaction 函数: signal 函数的使用方法简单,但并不属于 POSIX 标准,在各类 UNIX 平台上的实现不尽相同,因此其用途受 到了一定的限制.而 POSIX 标准定义的信号处 ...
- BZOJ4840 NEERC2016 Binary Code
Problem BZOJ Solution 可能是因为快要省选了,所以最近更博的频率好像高了点_(:зゝ∠)_ 每个字符串最多有两个状态,然后要满足一些依赖关系,考虑2sat.可以先把字符串的结束节点 ...