OpenCV在Ubuntu18.04下的小试牛刀——实例

摘要:计算机视觉和深度学习一直以来是热门话题,但苦于不知从何开始学习。直到我遇到了OpenCV…
关键字:Linux,OpenCV–3.4.1
软件环境:Ubuntu18.04,

一、 OpenCV介绍

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

主要编程语言:C++

但大家也不要看见C++语言就发憷,OpenCV是保留了大量的C语言的接口的。

主要应用领域:

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

二、 OpenCV下载以及安装

重要提示:安装OpenCV会出现各种问题,每个问题的解决方法也没有正解,有可能出现错误安装或者删除重要文件,导致整个虚拟机死机或者崩溃。请大家务必在安装之前进行备份数据或者快照。
在这里插入图片描述
●快照可以使得虚拟机重新回到快照的那个状态(就类似虚拟机时光倒流回到之前的节点)
●备份数据可以通过VMware Tools将虚拟机文件备份至Windows中。
●再不济可以将朋友,同学的虚拟机文件拷贝进该虚拟机安装win10安装路径

目前OpenCV最新版为OpenCV–4.3.0[百度百科所查结果],但由于社区开发以及资源问题,我优先选用了OpenCV–3.4.1

OpenCV在Linux下安装需要众多依赖库以及各种操作,此步骤十分繁琐,请大家在遇到问题时,多在网上搜索解决问题的方法。

安装OpenCV中需要CMake以及g++,且对版本有一定要求。请大家注意!

2.1 OpenCV安装准备

2.1.1 安装cmake和gcc

因为OpenCV需要CMake,Gcc所以先安装CMake和Gcc

sudo apt-get install cmake
sudo apt-get install gcc

2.1.2 配置依赖环境

sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev
sudo apt-get install libgtk2.0-dev
sudo apt-get install pkg-config

由于我是重新装的Ubuntu18.04,所以这里并没有报错。但如果有报错,请自行查找资料解决。

2.2 OpenCV安装

2.2.1OpenCV下载

官网下载安装:OpenCV官网
国内快速下载:庐雪技术博客

由于OpenCV服务器在国外,所以下载速度很慢,建议使用国内下载链接。
也可以在win10界面下载,将文件包拖拽至Ubuntu,但此做法需要VMware Tools(此工具可以实现Windows与Ubuntu之间可以文字复制粘贴,文件拖拽等功能,建议安装)。

在这里插入图片描述

2.2.2 OpenCV软件包解压

①首先将下载好的压缩包文件放在home文件目录下
在这里插入图片描述
②解压缩OpenCV-3.4.1

unzip opencv-3.4.1.zip

2.2.3 进入OpenCV-3.4.1文件

①进入解压缩后的文件

cd opencv-3.4.1

在这里插入图片描述
在这里插入图片描述

②创建build文件

mkdir build

③进入build文件

cd build/

2.2.4 使用cmake编译

cmake ..

cmake … :意思是将上一级目录下的执行文件编译至该文件目录下

不同版本、不同设置以及不同硬件下,该编译时间不一样,但大约十分钟左右。

2.2.5 用 make 创建编译

sudo make

注意:单线程编译:sudo make ,这会等待比较长的时间,如果你想更快速编译完,可以使用命令:sudo make -j4 ,而 -j4 表示使用 4 个线程进行编译。

此步骤安装会需要等待三十分钟左右(单线程还得多等会)

在这里插入图片描述
在这里插入图片描述

2.2.6安装

sudo make install

在这里插入图片描述

成功安装OpenCV。

2.3 配置环境

打开/etc/ldso.conf.文件进行配置
在文件中加上一行 /usr/loacal/lib
其中/user/loacal是opencv安装路径也就是makefile中指定的安装路径

sudo gedit /etc/ld.so.conf

在这里插入图片描述

在这里插入图片描述
编辑文件之后产生了Warning,网上搜索说可以不用管,以下文章可以解惑
ubuntu18.04 gedit警告问题
在这里插入图片描述

sudo ldconfig

在这里插入图片描述

修改bash.bashrc文件

sudo gedit /etc/bash.bashrc 

在这里插入图片描述
在这里插入图片描述
同样弹出Warning,但也不用管。

然后在命令行中输入

source /etc/bash.bashrc

2.4 校验

在命令行中输入如下命令:

pkg-config opencv --modversion

在这里插入图片描述
显示OpenCV版本则是安装成功。

安装过程参考该文章ubuntu安装opencv的正确方法

三、 Opencv测试

3.1 使用OpenCV对图片进行处理

3.1.1编写程序

在opencv-3.4.1文件目录下新建文件夹test.cpp
将下载好的图片(Linux.png)放至opencv-3.4.1文件目录下

  • test.cpp
#include<opencv2/highgui.hpp>
#include<opencv2/opencv.hpp>
using namespace cv;
using namespace std;

//功能:对图片进行特效处理并显示
int main(int argc,char **argv)
{
        CvPoint center;
        double scale=-3;

        IplImage *image=cvLoadImage("Linux.png");
        argc==2?cvLoadImage(argv[1]):0;

        cvShowImage("image",image);

        if(!image) return -1;
        center=cvPoint(image->width/2,image->height/2);
        for (int i = 0;i<image->height;i++)
                for (int j = 0;j<image->width;j++) {
                        double dx = (double)(j - center.x) / center.x;
                        double dy = (double)(i - center.y) / center.y;
                        double weight = exp((dx*dx + dy*dy)*scale);
                        uchar* ptr = &CV_IMAGE_ELEM(image, uchar, i, j * 3);
                        ptr[0] = cvRound(ptr[0] * weight);
                        ptr[1] = cvRound(ptr[1] * weight);
                        ptr[2] = cvRound(ptr[2] * weight);
                }
        Mat src;
        src=cvarrToMat(image);
        imwrite("test.png",src);
        imshow("test",src);

        cvWaitKey();
        return 0;
}

编译

gcc test.cpp -o test `pkg-config --cflags --libs opencv`

在这里插入图片描述
这里会报错。
使用以下命令就没有报错。

g++ test.cpp -o test `pkg-config --cflags --libs opencv`

报错分析:个人觉得是gcc无法正常链接库

在这里插入图片描述

翻译结果:未能加载模块“canberra-gtk-module”
是因为没有安装这个模块,安装了该模块就行。

sudo apt-get install libcanberra-gtk-module

执行test文件

./test

编译结果如下:
在这里插入图片描述

3.2 对视频进行处理

由于Ubuntu连接摄像头就直接死机崩溃,目前也没有找到解决方法,因此无法完成此项目。

四、 总结

安装OpenCV的过程中,遇到了不少问题,一台虚拟机也直接光荣退休了,Ubuntu连接摄像头也没有成功,但在每一次报错,改错的过程中也慢慢学会了更多的知识。要提前做好备份,要对问题先细心分析,搜到解决方法时也要分析适不适合自己目前的状况。

五、 参考资料

1.Windows10&Ubantu16.04&树莓派3B+安装opencv教程
2.ubuntu安装opencv的正确方法

©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页