ubuntu16.04下载,编译和安装opencv过程
发表于: 2019-06-02 10:27:00 | 已被阅读: 57 | 分类于: 杂谈
最近几年,人工智能发展迅速,很多领域已经开始商用,最为有名的当属语音识别,和以人脸识别为代表的机器视觉。如果读者和我一样爱折腾,相信也会对这些有兴趣,希望打造一款自己的人脸识别应用。
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 官网下载:
$ 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
$ wget - c [上图中的下载链接]
下载完成后,输入 unzip 命令解压下载后的压缩包:
$ unzip opencv-3.4.0.zip
$ 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 -j8
输入命令后,即可进入编译阶段,这一过程可能需要几分钟,我们耐心等下:
$ make install
完成后,查看我们指定的安装目录:
初试 OpenCV
因为 OpenCV 主要用来处理图像,所以开发工具这里选用跨平台的 QT,新建一个工程,打开 .pro 文件,输入以下内容指定 OpenCV 库的头文件位置和库位置:
#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;
}
小结
本节粗略介绍了 OpenCV,读者如果感兴趣,可自行再详细了解下 OpenCV。本节较为详细的介绍了 OpenCV 的安装和简单测试,可以看出,相对于 windows 上繁杂的配置,在 Ubuntu 上使用 OpenCV 要简单许多。另外,以后需要做自己产品或者应用时,Linux 的开发板总体来说要比 windows 获取难度低,价格也要便宜许多。