Opencv环境配置及踩坑
Opencv环境配置及踩坑
1.什么是Opencv
OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和[Mac OS](https://baike.baidu.com/item/Mac OS/2840867)操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
当然了,上述是百度的解释,大一上学期现阶段,我拿Opencv主要是当个消遣的玩具,做做脸部识别、手势识别这些项目
OpenCV用C++语言编写,它具有C ++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS,OpenCV主要倾向于实时视觉应用,并在可用时利用MMX和SSE指令, 如今也提供对于C#、Ch、Ruby,GO的支持。
2.Opencv的配置
喜闻乐见的配环境时间,由于是第一次配环境(之前在Ubuntu上配置gcc环境太简单,不算入计数了),所以还是踩了不少坑,特地在此记录一下
相比于Tensorflow或是yolo,我觉得Opencv还是方便一些,Opencv仅仅只是一个库,我们安装就行了,yolo确实要装很多库,当然也可能是我的方法不对.
1.C++
第一次尝试:Clion+Mingw+Opencv+Cmake
首先毫不意外的,如果我们使用Mingw编译器进行环境配置,我个人是出于不想安装Vs这种庞然大物在我硬盘本来就不大的笔记本电脑上,所以我选择这套方案,但这套方案的弊病是十分的恼人,过程繁琐,中间会出现许多的问题(大部分还是因为国内网络政策原因)
我们在已经配置好Mingw编译器的Clion中想要安装Opencv,去官网下载下文件后,需要利用Cmake进行编译,在Opencv目录下新建一个文件夹,推荐命名为Mingw-build
,之后打开Cmake,将Source code选为opencv目录下的sources,将要build的目标文件夹设为你新建的文件夹Mingw-build
,点击configure,选择MingGW Makefiles,之后点击两次次configure,最后点击一次finish即可
第一次点击configure等待进度条结束后,列表中会出现很多红色项,再次点击一次configure,等待进度条走完之后就均会变白了,但其实在这些步骤中就已经出现很多问题了,首先在编译过程中实际上是需要联网下载许多动态链接库的,例如opencv_ ffmpeg_64.dll
,不同人的情况不同,有些人全部都可以下载完成(我是没见过),运气好的只差一两个文件,我配置时则是五六个文件都无法下载(不知是不是校园网原因)
解决方法也不难,请访问sources目录下的3rdparty文件夹,在其中找到下载过程中的log文件,其中就包含了这些下载失败的文件的下载地址,粘贴链接到浏览器中进行下载即可,下载完毕后需要将对应的文件名改为log文件中对应的MD5码,值得一提的是,在这些文件中,因为官方太久没有进行维护,所以会存在部分文件的下载地址失效的问题,例如访问对应的连接后,页面为一些代码,将这些页面保存到本地,后缀改为.cmake即可
但即使这样,可能还是无法成功,这是有可能是环境变量未添加所导致的,或者也可以尝试自己在所新建的项目中编写cmake文件,但由于我折腾了一下午也没成功,所以我最后没有钻研下去,这里贴出一个链接所述这两种方案
第二次尝试:Visual Studio+Vs编译器+Opencv
由于被第一次尝试折磨的不耐烦了,索性卸载了Clion一口气换了Vs(我个人不喜欢电脑上有重复的可以解决相同问题的软件),Visual Studio的环境配置比起上述方案就要简单的多,不得不感慨还是巨硬大公司有底气
这里推荐两种方法进行Opencv的安装,其中一种是使用Vcpkg,另一种是手动进行安装
我个人使用的方法是后者,跟着视频教程走就行.
第二种方法比较懒人,但也得益于巨硬为我们提供的如此强大的工具,可能有很多人没听说过Vcpkg,这里贴一篇CSDN的文章
题外话:虽然成功在Vs方案下配置了Opencv,但实际使用过程中非常不方便,很多项目中Python拥有强大的第三方库帮助实现辅助功能,而C++显得有些乏力
2.Python
Finally,还是选择了Python下使用Opencv的方案,第三方库实在是太香了
最主要是发现Python的pip太爽了,打开对应Python目录下的pip,输入一行指令pip install opencv-python
即可自动安装完毕,新建一个项目import cv2
即可
但上述安装方式仅仅只是安装了Opencv的一个基础包,还有一个拓展包也是我们必不可少的,输入pip install opencv-contrib-python
即可
至此,折腾了一下午加一晚上的Opencv环境配置终于结束了
我也成功写出了我第一个人脸识别的项目,体会到了Opencv这个库的好玩之处,当然了,这仅仅只是皮毛中的皮毛,但不得不说,这比什么传统算法题,刷什么oj可有意思多了