---恢复内容开始---
图像处理技术一般包括图像压缩,增强和复原,匹配、描述和识别3个部分。图像处理和计算机视觉的区别在于:图像处理侧重于“处理”图像——如增强、还原、去噪、分割等;而计算机视觉重点在于使用计算机来模拟人的视觉。
OpenCV由一系列C函数和C++类构成,拥有包括500多个C函数的跨平台的中高层API。OpenCV还提供MLL机器学习库,该机器学习库主要用于统计方面的模式识别和聚类。OpenCV可用于解决如下领域的问题:人机交互、物体识别、图像分区、人脸识别、动作识别、运动跟踪、机器人。
OpenCV基本架构分析:...\opencv\build\include目录,其中有opencv和opencv2。opencv文件夹包含旧版的头文件,而opencv2包含着新版opencv2系列的头文件。
OpenCV所有模块:
(1)【calib3d】——该模块主要是相机校准和三维重建相关的内容,包括基本的多视角几何算法、单个立体摄像头标定、物体姿态估计、立体相似性算法、3D信息的重建等。
(2)【contrib】——该模块新增了新型人脸识别、立体匹配、人工视网膜模型等技术。
(3)【core】——核心功能模块,包含OpenCV基本数据结构、动态数据结构、绘图函数、数组操作相关函数、辅助功能与系统函数和宏、与OpenGL的互操作。
(4)【imgproc】——图形处理模块,包含线性和非线性的图像滤波、图像的几何变换、其他图像转换、直方图相关、结构分析和形状描述、运动分析和形状描述、运动分析和对象跟踪、特征检测、目标检测等内容
(5)【features2d】——2D功能框架,包含特征检测和描述、特征检测器通用接口、描述符提取器通用接口、描述符匹配器通用接口、通用描述符匹配器通用接口、关键点绘制函数和匹配功能绘制函数
(6)【flann】——高维的近似近邻快速搜索算法库,包含快速近邻最近邻搜索、聚类
(7)【GPU】——运用GPU加速的计算机视觉模块
(8)【highgui】——高层GUI图形用户界面,包含媒体的输入输出、视频捕捉、图像和视频的编码解码、图形交互界面的接口等
(9)【legacy】——一些已经废弃的代码库,保留下来作为向下兼容,包含运动分析、期望最大化、直方图、平面细分、特征检测和描述、描述符提取器的通用接口、通用描述符的常用接口、匹配器
(10)【ml】——机器学习模块,基本上是统计模型和分类算法,包含统计模型、一般贝叶斯分类器、K-近邻、支持向量机、决策树、提升、梯度提高树、随机数、超随机数、期望最大化、神经网络、MLData
(11)【nonfee】——一些具有专利的算法模块,包含特征检测和GPU相关的内容。
(12)【objdetect】——目标检测模块,包含Cascade Classification(级联分类)和Latent SVM两部分。
(13)【ocl】——运用OpenCL加速的计算机视觉组件模块
(14)【photo】——包含图像修复和图像去噪两部分
(15)【stitching】——图像拼接模块,包含拼接流水线、特点寻找和匹配图像、估计旋转、自动校准、图片歪斜、接缝估测、曝光补偿、图片混合
(16)【superres】——超分辨率技术的相关模块
(17)【ts】——OpenCV测试相关代码
(18)【video】——视频分析组件,该模块包括运动估计、背景分离、对象跟踪等视频处理相关内容
(19)【Videostab】——视频稳定相关组件
opencv.hpp中包含了OpenCV各模块的头文件,故编写程序时,可写上“#include<opencv2/opencv.hpp>”即可。
argc与argv参数:arg指的是“参数”,其中,argc为整数,用来统计运行程序时送给main函数的命令行参数的个数;*argv[]:为字符串数组,用来存放指向字符串参数的指针数组,每一个元素指向一个参数。
int argc表示命令行字串的个数;
char *argv[]表示命令行参数的字符串。
以下是参考 http://blog.sina.com.cn/s/blog_6a0e04380100r289.html 深度和通道的理解
矩阵数据类型:
– CV_<bit_depth>(S|U|F)C<number_of_channels>
S = 符号整型 U = 无符号整型 F = 浮点型
E.g.:
CV_8UC1 是指一个8位无符号整型单通道矩阵,
CV_32FC2是指一个32位浮点型双通道矩阵
CV_8UC1 CV_8SC1 CV_16U C1 CV_16SC1
CV_8UC2 CV_8SC2 CV_16UC2 CV_16SC2
CV_8UC3 CV_8SC3 CV_16UC3 CV_16SC3
CV_8UC4 CV_8SC4 CV_16UC4 CV_16SC4
CV_32SC1 CV_32FC1 CV_64FC1
CV_32SC2 CV_32FC2 CV_64FC2
CV_32SC3 CV_32FC3 CV_64FC3
CV_32SC4 CV_32FC4 CV_64FC4
其中,通道表示每个点能存放多少个数,类似于RGB彩色图中的每个像素点有三个值,即三通道的。
图片中的深度表示每个值由多少位来存储,是一个精度问题,一般图片是8bit(位)的,则深度是8.
原文:https://www.cnblogs.com/shuimuqingyang/p/9865029.html