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可有意思多了
Opencv环境配置及踩坑的更多相关文章
- Pytorch及Yolov5环境配置及踩坑
Pytorch及Yolov5环境配置及踩坑 1.何为Yolov5 yolo是计算机视觉方面用来进行目标检测的一个十分出名的开源框架,我搜不到官方的对此概括性的定义,但实际上也没什么必要,更重要的是会使 ...
- pycharm+PyQt5+python最新开发环境配置,踩坑过程详解
安装工具:Pycharm 专业版2017.3PyQT5python3 pyqt5-tools 设置扩展工具的参数找到setting->tools->external tools,点击加号新 ...
- React Native Android配置部署踩坑日记
万事开头难 作为一只进入ECMAScript世界不久的菜鸟,已经被React Native的名气惊到了,开源一周数万星勾起了我浓烈的兴趣.新年新气象,来个HellWorld压压惊吧^_^(故意少打个' ...
- android开发环境配置和一些坑
要开发安卓应用,首先就是要配置安卓的开发环境. 新手在这个步骤时,会发现安卓的开发环境配置不是一般的麻烦,因为一般人是选择eclipse+a sdk+adt的,需要java环境,需要翻 墙,需要有非一 ...
- Flutter开发环境(Window)配置及踩坑记录
Flutter 是 Google 用以帮助开发者在 iOS 和 Android 两个平台开发高质量原生 UI 的移动 SDK.Flutter 兼容现有的代码,免费且开源,在全球开发者中广泛被使用. F ...
- Linux 初始环境配置 以及避坑 (详细)
没事儿喜欢自己装个虚拟机捣鼓捣鼓,经过几次装一些Linux 经验, 有时候 电脑了 .想重新系统了,又要重新去配置环境, 有时候又要去查很多很多命令 . 记录分享下Linux 下配置开发环境以及桌面 ...
- AVT Vimba与OpenCV环境配置
近来,由于项目需求,需要使用AVT的一款相机采集图像并进行相应的算法处理.环境的配置过程较为复杂,特此记录,以做备忘.也给有需要的小伙伴们一些key point的分享. 搭建环境:Windows7 + ...
- spring零配置AOP踩坑指南
今天照着书,试着配了AOP(全注解),结果踩了各种坑,后来参考书附带的源码,终于走出来了,现在总结一下 除了spring的jar包以外,还需要导入以下包: 1.Spring核心配置文件beans.xm ...
- opencv 环境配置-windowsx64 +VS2017
opencv版本为4.1.1官方最新版本, https://sourceforge.net/projects/opencvlibrary/ 先配置本地工程环境: 右键我的电脑-属性 将bin的路径添加 ...
随机推荐
- Eclipse 安装配置和 Git 创建代码库 教程
1. Eclipse 安装 http://www.eclipse.org/downloads/ 这是eclipse的官网,进入下载,步骤如下图: 选择Download或者下面的 [Select Ano ...
- [mybatis]mybatis日志的使用和分页功能的实现
日志 Mybatis 通过使用内置的日志工厂提供日志功能.内置日志工厂将会把日志工作委托给下面的实现之一: SLF4J Apache Commons Logging Log4j 2 Log4j JDK ...
- LCA——树上倍增
首先,什么是LCA? LCA:最近公共祖先 祖先:从当前点到根节点所经过的点,包括他自己,都是这个点的祖先 A和B的公共祖先:同时是A,B两点的祖先的点 A和B的最近公共祖先:深度最大的A和B的公共祖 ...
- 自定义注解_格式&本质和自定义注解_属性定义
自定义注解: 格式: public @interface 注解名称{} 本质:注解本质上就是一个接口,该接口默认继承Annotation接口 public interface MyAnno exten ...
- TensorFlow自定义训练函数
本文记录了在TensorFlow框架中自定义训练函数的模板并简述了使用自定义训练函数的优势与劣势. 首先需要说明的是,本文中所记录的训练函数模板参考自https://stackoverflow.com ...
- 用JavaScript写输入框的校验
//Script function cheack(){ var kong = ''//获取值不能放外面,不然一直为空 kong = document.getElementById('name').va ...
- SmartIDE v1.0.23 一个非常不敏捷的发布
SmartIDE v1.0版本(CLI Build v1.0.23.4650,Server Build v1.0.23.4646)已经发布,在超过4000 个 Builds 之后,我们终于发布了v1. ...
- mysql-shell for GreatSQL 8.0.27编译安装及使用
目录 0. 前言 1. 修改说明 2. 编译mysql-shell 2.1 环境准备 2.2 开始编译mysql & mysql-shell 2.3 利用patchelf修改mysqlsh二进 ...
- 深入理解Aarch64内存管理
本文是对learn_the_architecture_-_aarch64_memory_management的部分翻译和个人注解.个人英文水平有限,若有翻译不当,欢迎加我私人微信LinuxDriver ...
- 如何有效管理产品生命周期(How to Effectively Manage a Product Lifecycle)
本文翻译自文章:How to Effectively Manage a Product Lifecycle 文章原文链接:https://medium.com/design-bootcamp/how- ...