OpenCV简介:
OpenCV 是一款功能强大的跨平台计算机视觉开源库,可以用于解决人机交互、物体检测、人脸识别等领域的问题。库本身是采用 C++ 编写的,但是同时也对 Python, Java, C# 等语言提供接口支持。
OpenCV的全称是:Open Source Computer Vision Library(开源计算机视觉库)。
OpenCV的应用领域:
- 人机互动
- 物体识别
- 图像分割
- 人脸识别
- 动作识别
- 运动跟踪
- 机器人
- 运动分析
- 机器视觉
- 结构分析
- 汽车安全驾驶
OpenCV教程:
C++语言开发:
前面介绍过了OpenCV是用C++语言编写,因此想要学习OpenCV,当然首选C++语言,这里推荐4门OpenCV的教程,全部都是用C++语言开发的。
1小时入门增强现实技术
该项目基于OpenCV实现一个将3D模型显示在现实中的小例子,学习基于Marker的AR技术,既简单又有趣。
使用OpenCV&&C++进行模板匹配
模版匹配是在图像中寻找目标的方法之一,常用于进行物体识别或人脸识别。该项目使用OpenCV&&C++进行模板匹配,在一张大图中去查找并圈出目标小图。通过教程你将学习到关于OpenCV的一些函数用法和模板匹配的完整流程。
输入两张图像分别为:
以上两张图片匹配完成的输出结果图片:
C++基于OpenCV实现实时监控和运动检测记录
该项目使用C++和OpenCV提供的库函数,实现摄像头的实时监控功能,并通过监控画面的运动检测选择是否记录视频。监控人员可选择输出图像的模式以更容易的分辨监控中的异常情况。
C++实现运动目标的追踪
该项目利用 OpenCV 来实现对视频中动态物体的追踪。学习该教程前,您需要先完成C++实现太阳系行星运行系统的相关实验,因为该项目是基于此进行的后续开发。
Python开发:
我们知道OpenCV提供了Python接口,加之Python的易学性,所以很多人都会学Python,因此分享几个Python语言开发的相关实战教程:
Python3 & OpenCV 视频转字符动画
该项目使用 OpenCV 处理图片视频,将视频转为字符画序列,再在终端中播放字符动画。除了 OpenCV 的操作,该项目还会了解光标定位转义编码的使用。
使用OpenCV进行图片平滑处理打造模糊效果
该项目利用OpenCV中的平滑处理和线性滤波器对图片进行处理,打造模糊效果。将介绍归一化滤波器,高斯滤波器,中值滤波器,双边滤波器这四种滤波器的相关知识,并且会对“核”和卷积进行相应的讲解。
输入一张图像:
输出一张图像:
川普撞脸希拉里(基于 OpenCV 的面部特征交换)
该项目通过 OpenCV 库来实现人脸面部特征交换,其实就是将第二张人脸的眼睛、鼻子和嘴巴通过程序自动裁剪适配并覆盖到第一张人脸上,并且为了使得修改后的照片看着更加自然,我们还需要调整皮肤颜色。
Python实现简易局域网视频聊天工具
该项目是Python基于OpenCV和PyAudio实现的局域网内视频聊天工具,支持IPv6。优点是校园网/IPv6下不走流量。