9

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

 3 years ago
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.
neoserver,ios ssh client

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

OpenCV

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

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

  1. 汽车安全驾驶

如果读者也和我一样,希望从零基础开始学习使用 OpenCV,可以和本系列文章一起学习,本节将介绍如何下载和安装 OpenCV。

OpenCV 支持多个操作系统多个平台,所以在下载和安装 OpenCV 之前,需要先选择一个平台。因为 Windows 对C语言/C++ 程序员不够友好,而OpenCV是由C系语言开发的,在 Windows 上使用各种依赖的设置非常繁琐,所以我打算再 Ubuntu 上学习 OpenCV。Ubuntu 是 Linux 系的操作系统,安装软件和设置依赖方便,此外,Ubuntu 也可以有漂亮的桌面系统,如下图:

7073e044cb74c4cece90f16218cb59cc.png

如果读者不知道如何安装和使用 Ubuntu,可以参考我的专栏文章《》。

下载和安装 OpenCV

首先需要下载 OpenCV 的安装包或者源码。因为 OpenCV 是一个开源的项目,因此读者可以在 GitHub 上下载它的源码,当然,也可以在 OpenCV 官网下载:

780467f935ade054cbf4e3bd8addfe8e.png

点击上图中的 Tutorials,可得到如下页面:
9884ef944c6ec24d35468248c1d23ece.png

上图中的红框可以选择 OpenCV 的版本,可以发现 OpenCV 最新版本是 4.1.0-dev。作为初学者,我不打算使用最新版本,而是选择学习资源更多的较旧版本,熟练后再去追最新版本。这里选择了 3.4.0 版本:
d30721ce90db414b38a4564cd8db23c7.png

点击“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
16f14299d0f8e49f85297ce15af95df1.png

安装完毕后,找到 OpenCV-3.4.0 的下载资源:
def7c0c5b600a7746dbe0824007451f9.png

可以从 GitHub 上下载,或者也可点击 Sources 直接下载:
01d57e96a2867d72647f3fd066772680.png

如果希望直接使用 Ubuntu 上下载,可以在终端输入以下命令:
$ wget - c [上图中的下载链接]

下载完成后,输入 unzip 命令解压下载后的压缩包:

$ unzip opencv-3.4.0.zip
86a9a7b0a9a8a96b00adb5db101b01be.png

现在进入 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:

6e3aba0d84bc6182e4ca7a9cbfe3d5b5.png

现在直接输入 make 即可编译,为了加快速度,可多使用 -j 多指定几个编译线程:
$ make -j8

输入命令后,即可进入编译阶段,这一过程可能需要几分钟,我们耐心等下:

1d1cbdfdff2a793a6dc688f15ce6c43a.png

编译完成后,输入 make install 命令即可将 OpenCV 安装到前面指定的目录:
$ make install

完成后,查看我们指定的安装目录:

发现 OpenCV 的确被安装到此目录了。接下来,我们将写一个简单的程序作为测试。

初试 OpenCV

因为 OpenCV 主要用来处理图像,所以开发工具这里选用跨平台的 QT,新建一个工程,打开 .pro 文件,输入以下内容指定 OpenCV 库的头文件位置和库位置:

020aa17d6b816df1ecade6aae8e2db19.png

完成后,写以下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;
}
7f38184ca01290add922501e1241886d.png

这段C语言风格的代码将进行图像腐蚀操作,在执行程序之前,需要准备一张名为 test.jpg 的图片作为测试对象,并将其放入可执行程序所在目录,然后点击运行,得到如下输出:
27053a16c00ecbf5b265efd6eca89720.png

可以看出,右图被成功腐蚀了。至此我们就完成了 OpenCv 的安装和简单测试,下一节将开始逐步学习 OpenCV。

<h2>小结</h2>

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK