OpenCV介绍

这一次,不谈代码,我们去看看什么是OpenCV,为什么用它, 用它做什么,解决这三个哲学问题。

  • OpenCV 众所周知 是开源的计算机视觉库。也就是非商业盈利,却是用来促进视觉的商业应用的发展。

最早出现的是2000年的OpenCV的预览版本 在IEEE公开,提供了五个测试版本

之后 于 2006年 发布OpenCV初代 1.0版本

于 2009年10月 发布2.0版本

于2014年8月 发布OpenCV 3.0 版本

理论上每6个月 就有一个 OpenCV版本发布 (小版本)

现在 是由非盈利组织 OpenCV.org提供更新代码。

  • OpenCV 用于以下领域的问题
    • 人机交互
    • 物体识别
    • 图像分区
    • 人脸识别
    • 动作识别
    • 动作跟踪
    • 机器人
  • 当你们下载完OpenCV文件会发现有两种一个是opencv 一个是opencv2
    • 如下图所示是opencv文件夹, 是OpenCV1.0最核心的。
    • OpenCV介绍_第1张图片
  • 这是OpenCV2文件,包含OpenCV所有模块内容
    • OpenCV介绍_第2张图片
    • calib3d——用于相机校准和三维重建
    • contrib——新增的人脸识别、立体匹配、人工视网膜模型等技术
    • core——核心功能模块:
      • OpenCV基本数据结构
      • 动态数据结构
      • 绘图函数
      • 数组操作相关函数
      • 辅助功能与系统函数和宏
      • 与OpenGL的互操作
    • imgproc——图像处理模块:
      • 线性和非线性的图像滤波
      • 图像的几何变换
      • 其他(Miscellaneous)图像转换
      • 直方图相关
      • 结构分析和形状描述
      • 运动分析和对象跟踪
      • 特征检测
      • 目标检测等内容
    • features2d——2D功能框架
      • 特征检测和描述
      • 特征检测器(Feature Detectors)通用接口 
      • 描述符提取器(Descriptor Extractors)通用接口
      • 描述符匹配器(Descriptor Matchers)通用接口
      • 通用描述符(Generic Descriptor)匹配器通用接口
      • 关键点绘制函数和匹配功能绘制函数
    • flann——高维的近似近邻快速搜索算法库
      • 快速近似最近邻搜索
      • 聚类
    • gpu——运用GPU加速的计算机视觉模块
    • highgui——高层GUI图形用户界面,包含媒体的输入输出、视频捕捉、图像和视频的编码解码、图形交互界面的接口等
    • legacy——一些已经废弃的代码库、用来向下兼容
    • ml——机器学习模块
    • nonfree——一些具有专利的算法模块
    • objdetect——目标检测模块
    • ocl——运用OpenGL加速的计算机视觉组件模块
    • photo——图像修复和图像去噪
    • stiching——图像拼接模块
    • superres——超分辨率技术的相关功能模块
    • ts——OpenCV测试相关代码
    • video——视频稳定相关组件
  • OpenCV3 抛弃整体架构,使用内核+插件的架构形式
  • 除了OpenCV主仓库,还新增了"opencv_extra","opencv_contrib"的全新仓库,该仓库用于脸部识别和文本探测,以及文本识别、新的边缘检测器、充满艺术感的图像修复、深度地图处理、新的光流和追踪算法。
  • OpenCV2 升级到 OpenCV3报错
    • 宏定义变更造成的“未声明的标识符”
    • vector容器未声明
    • 其他问题

你可能感兴趣的:(OpenCV介绍)