

ubuntu16.04下载,编译和安装opencv过程
source link: https://blog.popkx.com/ubuntu16-04%E4%B8%8B%E8%BD%BD-%E7%BC%96%E8%AF%91%E5%92%8C%E5%AE%89%E8%A3%85opencv%E8%BF%87%E7%A8%8B/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

最近几年,人工智能发展迅速,很多领域已经开始商用,最为有名的当属语音识别,和以人脸识别为代表的机器视觉。如果读者和我一样爱折腾,相信也会对这些有兴趣,希望打造一款自己的人脸识别应用。
OpenCV
OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 语言函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
OpenCV 已在各个领域得到广泛的应用,包括但不限于:
- 汽车安全驾驶
如果读者也和我一样,希望从零基础开始学习使用 OpenCV,可以和本系列文章一起学习,本节将介绍如何下载和安装 OpenCV。
OpenCV 支持多个操作系统多个平台,所以在下载和安装 OpenCV 之前,需要先选择一个平台。因为 Windows 对C语言/C++ 程序员不够友好,而OpenCV是由C系语言开发的,在 Windows 上使用各种依赖的设置非常繁琐,所以我打算再 Ubuntu 上学习 OpenCV。Ubuntu 是 Linux 系的操作系统,安装软件和设置依赖方便,此外,Ubuntu 也可以有漂亮的桌面系统,如下图:
如果读者不知道如何安装和使用 Ubuntu,可以参考我的专栏文章《》。
下载和安装 OpenCV
首先需要下载 OpenCV 的安装包或者源码。因为 OpenCV 是一个开源的项目,因此读者可以在 GitHub 上下载它的源码,当然,也可以在 OpenCV 官网下载:
点击上图中的 Tutorials,可得到如下页面:
上图中的红框可以选择 OpenCV 的版本,可以发现 OpenCV 最新版本是 4.1.0-dev。作为初学者,我不打算使用最新版本,而是选择学习资源更多的较旧版本,熟练后再去追最新版本。这里选择了 3.4.0 版本:
点击“Introduction to OpenCV”,选择“Installation in Linux”,即可打开 OpenCV 的官方安装教程。首先需要安装一些依赖包,这在 Ubuntu 上是方便的,只需打开终端,输入以下几条命令:
$ sudo apt-get install build-essential
$ sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
$ sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
安装完毕后,找到 OpenCV-3.4.0 的下载资源:
可以从 GitHub 上下载,或者也可点击 Sources 直接下载:
如果希望直接使用 Ubuntu 上下载,可以在终端输入以下命令:
$ wget - c [上图中的下载链接]
下载完成后,输入 unzip 命令解压下载后的压缩包:
$ unzip opencv-3.4.0.zip
现在进入 opencv-3.4.0 目录,新建 build 文件夹,接下来的编译安装工作在 build 里进行:
$ cd opencv-3.4.0/
$ mkdir build
$ cd build/
然后输入 cmake 命令,在这一步可以使用 CMAKE_INSTALL_PREFIX 指定接下来的安装目录,下面的命令指定的安装目录是 /usr/local,这是 Ubuntu 的系统目录。
$ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
我不打算在这个目录安装 OpenCV,因为如果需要调试其他版本的 OpenCV,若系统目录已经有其他版本,会比较麻烦。读者也可像我一样将其安装在其他目录:
$ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/lccRoot/xx_programs/opencv-3.4.0 ..
如果希望编译静态库,可以添加-D BUILD_SHARED_LIBS=OFF
。
如果不出意外的话,可以在 build 目录里得到 makefile:
现在直接输入 make 即可编译,为了加快速度,可多使用 -j 多指定几个编译线程:
$ make -j8
输入命令后,即可进入编译阶段,这一过程可能需要几分钟,我们耐心等下:
编译完成后,输入 make install 命令即可将 OpenCV 安装到前面指定的目录:
$ make install
完成后,查看我们指定的安装目录:
发现 OpenCV 的确被安装到此目录了。接下来,我们将写一个简单的程序作为测试。
初试 OpenCV
因为 OpenCV 主要用来处理图像,所以开发工具这里选用跨平台的 QT,新建一个工程,打开 .pro 文件,输入以下内容指定 OpenCV 库的头文件位置和库位置:
完成后,写以下C代码:
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat srcImg = imread("test.jpg");
imshow("test", srcImg);
Mat elem = getStructuringElement(MORPH_RECT, Size(10, 10));
Mat dstImg;
erode(srcImg, dstImg, elem);
imshow("eroded", dstImg);
waitKey(0);
return 0;
}
这段C语言风格的代码将进行图像腐蚀操作,在执行程序之前,需要准备一张名为 test.jpg 的图片作为测试对象,并将其放入可执行程序所在目录,然后点击运行,得到如下输出:
可以看出,右图被成功腐蚀了。至此我们就完成了 OpenCv 的安装和简单测试,下一节将开始逐步学习 OpenCV。
<h2>小结</h2>
本节粗略介绍了 OpenCV,读者如果感兴趣,可自行再详细了解下 OpenCV。本节较为详细的介绍了 OpenCV 的安装和简单测试,可以看出,相对于 windows 上繁杂的配置,在 Ubuntu 上使用 OpenCV 要简单许多。另外,以后需要做自己产品或者应用时,Linux 的开发板总体来说要比 windows 获取难度低,价格也要便宜许多。
Recommend
-
41
php-7.2.10编译安装过程1、安装前准备1.1、准备安装的服务器或虚拟机[root@localhost ~]# cat /etc/redhat-releaseCentOS Linux release 7.2.1511 (Core) [root@localhost ~]# ifconfigeno16777736: flags=4163<UP,BROADCAST,RUNNING
-
11
最近开始琢磨深度学习中经典的 SSD 网络,了解其基本原理后,迫不及待的想自己训练 SSD 玩玩,为之后的深入研究学习打下基础。当然了,最好把 GPU 利用起来,否则整个训练周期势必会比较久。为此,我把手边闲置的显卡 GeForce GTX 1050 安好,因为不习惯在 Wind...
-
15
Vmware Ubuntu16.04 x64位开启物理串口,并且通信,apt安装minicom失败,自行编译安装,解决error: BC undeclared (first use in this function)错误 ...
-
15
Ubuntu 16.04下载 FFmpeg 3.1.11版本源码,并且编译安装到指定目录 发表于 2...
-
8
ubuntu16.04下安装cv_bridge遇到的问题 系统是Ubuntu16.04。记录一下最近遇到的各种坑 在接手师兄的code时,catkin_make失败,说是找不到cv_bridge。是链接opencv和ROS之间的桥梁。我安装的有opencv3,但是不晓得为啥子没有这个。就直接搜了...
-
8
编译出适合自己的NginxNginx的安装方式安装Nginx有两种方法,除了编译以外,还可以直接用操作系统上自带的一些工具,比如yum、apt-get但是直接安装Nginx的二进制文件会有个问题,因为Nginx的二进制文件会把模块直接编译进来。Nginx的...
-
10
Ubuntu16.04安装/升级openssl到1.1版本 作者: xusx 分类: Linux 发布时间: 2021-06-11...
-
11
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kuberne...
-
6
Ubuntu16.04安装nvidia驱动+CUDA8.0时遇到的问题 发表于...
-
7
欢迎访问我的GitHubhttps://github.com/zq2599/blog_demos内容:所有原创文章分类汇总...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK