BS版图形系统 - OpenCV - 第1章笔记
** QQ: 282397369 **
入手【计算机视觉项目实战】一书,准备系统学习一下,在BS版图形系统中加上OpenCV的图像功能。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/81128760c8c4951e81fd573147d69e8e.png#pic_center)
用了这么久的OpenCV,发现只用了其中的几个模块。
值得系统学习。
1 OpenCV入门
1.1 了解人类视觉系统
- 人眼:颜色、形状、亮度
- 对低频内容比高频内容更敏感
- 对亮度的变化比对颜色的变化更敏感
- 对运动很敏感
- 倾向于记下特征点
1.2 人类如何理解图像内容
1.3 能用OpenCV做什么
- 几乎可以完成能想到的每种计算机视觉任务
1.3.1 内置数据结构和输入/输出
- 内置基元:Image, Point, Rectangle
- imgcodecs模块可以处理图像文件的读取和写入
- videoio模块可处理与视频文件的输入输出相关的所有操作
1.3.2 图像处理操作
- imgproc模块:图像过滤、形态学操作、几何变换、颜色转换、图像绘制、直方图、形状分析、运动分析、特征检测
- ximgproc模块:包含高级图像处理算法,结构化森林的边缘检测、域变换滤波器、自适应流形滤波器
1.3.3 GUI
highgui模块:处理高级用户界面操作
1.3.4 视频分析
- video模块,分析视频中连续帧之间的运动、跟踪视频中的不同目标、创建视频监控模型等任务
- videostab模块,处理视频稳定的问题
1.3.5 3D重建
- calib3d模块,找到2D图像中各种对象之间的关系,并计算其3D位置; 处理摄像机校准
1.3.6 特征提取
- SIFT: Scale Invariant Feature Transform
- SURF: Speeded Up Robust Features
- FAST: Features From Accelerated Segment Test
- features2d模块:提供检测和提取所有特征的功能
- xfeatures2d模块:提供更多的特征提取器
- bioinspired模块:为受到生物学启发的计算机视觉模型提供算法
1.3.7 对象检测
检测给定图像中对象的位置,与对象类型无关。
- objdetect模块、xobjdetect模块:提供设计对象检测器的框架
1.3.8 机器学习
目标识别、图像分类、面部检测、视频搜索等功能
- ml模块,捆绑了许多机器学习算法:贝叶斯分类器(Bayes classifier)、k近邻(k-nearest neighbor,KNN)、支持向量机(support vector machine,SVM)、决策树(decision tree)、神经网络(neural network)
- FLANN: 快速近似最近邻搜索库(Fast Approximate Nearest Neighbor Search Library)
1.3.9 计算摄影
使用先进的图像处理技术来改善相机捕获的图像
高动态范围成像、全景图像、图像补光和光场相机
- photo模块、xphoto模块包含各种算法,提供与计算摄像相关的算法
- stitching模块:提供创建全景图像的算法
1.3.10 形状分析
- shape模块为提取不同形状、测量它们之间的相似性、转换对象形状等操作提供了所有算法。
1.3.11 光流算法
用于在视频中跟踪连续帧的特征
- optflow模块包含了执行光流操作所需的所有算法
- tracking模块包含可用于跟踪特征的更多算法
1.3.12 人脸和对象识别
人脸检测:识别人脸位置
人脸识别:识别给定图像中的人物
- face模块用于处理人脸识别
- scaliency模块:在图像中找到显著的区域和对象,提供的算法可以检测静态图像和视频中的显著区域
1.3.13 表面匹配
- surface_matching模块:包含用于3D对象识别的算法,以及使用3D特征的姿势估计算法。
1.3.14 文本检测和识别
- text模块包含处理文本检测和识别的各种算法
1.3.15 深度学习
- TensorFlow和Caffe等多个重要框架的导入器