写在前面:上面这首《枫》的配器,使用宏伟的铜管和悠扬的弦乐组合而成。两个声部之间交错与融合,两种乐器的“对话”,描绘的是一幅北国秋冬交汇的万籁俱寂画卷......以下为正文。
— 简介 —
OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。
它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口。
在计算机视觉项目的开发中,OpenCV作为较大众的开源库,拥有了丰富的常用图像处理函数库,采用C/C++语言编写,可以运行在Linux/Windows/Mac等操作系统上,能够快速的实现一些图像处理和识别的任务。
此外,OpenCV还提供了Java、python、cuda等的使用接口、机器学习的基础算法调用,从而使得图像处理和图像分析变得更加易于上手,让开发人员更多的精力花在算法的设计上。
— 应用领域 —
1、人机互动;
2、物体识别;
3、图像分割 ;
4、人脸识别;
5、动作识别;
6、运动跟踪;
7、机器人;
8、运动分析;
9、机器视觉 ;
10、结构分析 ;
11、汽车安全驾驶。
·图像数据的操作 ( 分配、释放、复制、设置和转换)。图像是视频的输入输出I/O (文件与摄像头的输入、图像和视频文件输出)。
·矩阵和向量的操作以及线性代数的算法程序(矩阵积、解方程、特征值以及奇异值等)。
·各种动态数据结构(列表、队列、集合、树、图等)。
·基本的数字图像处理(滤波、边缘检测、角点检测、采样与差值、色彩转换、形态操作、直方图、图像金字塔等)。
·结构分析(连接部件、轮廓处理、距离变换、各自距计算、模板匹配、Hough变换、多边形逼近、直线拟合、椭圆拟合、Delaunay 三角划分等)。
·摄像头定标(发现与跟踪定标模式、定标、基本矩阵估计、齐次矩阵估计、立体对应)。
·运动分析(光流、运动分割、跟踪)。
·目标识别(特征法、隐马尔可夫模型:HMM)。
·基本的GUI (图像与视频显示、键盘和鼠标事件处理、滚动条)
— 红枣瑕疵检测项目应用 —
1、通过轮廓查找,图像灰度,明暗,梯度等判断缺陷,使用了gpu加速技术;
2、检测数据;
3、硬件环境:intel i7 4核心 i7集成gpu;
4、四台相机实时检测,每台每帧12颗红枣,算法平均用时85ms,理论产量=12*4/85*1000=564颗/秒。
(点好看)
文:中昕视觉部工程师 马振