ubuntu16.04下载,编译和安装opencv过程

最近几年,人工智能发展迅速,很多领域已经开始商用,最为有名的当属语音识别,和以人脸识别为代表的机器视觉。如果读者和我一样爱折腾,相信也会对这些有兴趣,希望打造一款自己的人脸识别应用。

OpenCV

OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 语言函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

OpenCV 已在各个领域得到广泛的应用,包括但不限于:

  1. 人机互动
  2. 物体识别
  3. 图像分割
  4. 人脸识别
  5. 动作识别
  6. 运动跟踪
  7. 运动分析
  8. 结构分析
  9. 汽车安全驾驶

如果读者也和我一样,希望从零基础开始学习使用 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。

小结

本节粗略介绍了 OpenCV,读者如果感兴趣,可自行再详细了解下 OpenCV。本节较为详细的介绍了 OpenCV 的安装和简单测试,可以看出,相对于 windows 上繁杂的配置,在 Ubuntu 上使用 OpenCV 要简单许多。另外,以后需要做自己产品或者应用时,Linux 的开发板总体来说要比 windows 获取难度低,价格也要便宜许多。

阅读更多:   杂谈 , Linux笔记
仅有 1 条评论
  1. 在cuda10环境中编译,可能会遇到错误:dynlink_nvcuvid.h: No such file or directory
    此时,cmake编译的参数将下面变量设置成OFF就可以了
    -D BUILD_opencv_cudacodec=OFF

添加新评论

icon_redface.gificon_idea.gificon_cool.gif2016kuk.gificon_mrgreen.gif2016shuai.gif2016tp.gif2016db.gif2016ch.gificon_razz.gif2016zj.gificon_sad.gificon_cry.gif2016zhh.gificon_question.gif2016jk.gif2016bs.gificon_lol.gif2016qiao.gificon_surprised.gif2016fendou.gif2016ll.gif