LBP算子基于局部纹理特征的人脸识别系统实现(3)
时间:2018-09-02 11:16 来源:毕业论文 作者:毕业论文 点击:次
OpenCV作为开源的库,任意开发者都可以对OpenCV的源代码进行修改,如果你个人编写的代码可以得到大众认可,那么你的个人代码会被大范围使用。 2.1.2 OpenCV发展 OpenCV的发展历程如表2.1所示,在表中已经列出了时间与其对应发生的事件: 表2.1 OpenCV发展历程 时间 主要发生事件 1999年1月 CVL项目启动。主要目标是完成在人机界面下能被UI调用的实时计算机视觉库,并针对Intel处理器做了特定优化。 2000年6月 OpenCV alpha 3,第一个开源版本发布。 2000年12月 针对linux平台的OpenCV beta 1发布。 2006年 支持Mac OS的OpenCV 1.0发布。 2009年9月 OpenCV 1.2 beta2.0发布。 2009年10月1日 Version 2.0发布。 2010年12月06日 OpenCV 2.2.0 正式版发布。 2011年06月25日 OpenCV-2.3.0rc发布了。提供了对Android支持,其他一些变化主要是改进内部性能。 2013年07月03日 OpenCV 2.4.6发布。 2013年12月31日 OpenCV 2.4.8发布。 2014年4月25日 OpenCV 2.4.9发布。 2014年8月21日 OpenCV 3.0 alpha版本发布。 2.1.3 OpenCV优势 计算机视觉市场作为一个十分巨大且还在不断成长的市场,并没有在该市场内形成统一的标准应用程序接口,如今的计算机视觉软件大概有以下缺点[7]: 1.研究的代码运行处理速度慢,而且并不稳定。同时一些代码独立,与其他一些库不兼容。 2.耗费很高的商业化工具,比如Halcon,MATLAB+Simulink等; 3.一些特别的解决方案主要还是要依赖硬件的,比较典型的视频监控、制造控制系统和医疗设备等。 这是如今计算机视觉市场普遍的现状。而如果诞生了标准的API,对整个市场来说,那将会是一场巨大的改革。这将会影响到几乎所有的计算机视觉程序和解决方案的开发过程。而OpenCV致力于成为这样的标准API[8]: OpenCV在编写过程中大多使用已经经过优化后的C或C++代码,这样做使得OpenCV的执行速度得到了相当显著的提升; OpenCV 对所用的应用都是开源、免费的,这样一来几乎涵盖了所有不同需求的用户,同时也减少了相当一笔成本费用; OpenCV 具有它自己的对立性,自身所包含的库已经可以满足大多数用户的需求,并不会特别依赖其他的库。 2.2 局部二值模式 局部二值模式(Local Binary Pattern,LBP)是一种有效的纹理描述算子,它具有旋转不变性和灰度不变性等显著的优点[9]。自LBP算子诞生起,它一直处于不断更新发展进步的阶段,直至今日,LBP算子的性能已经得到了业界的充分认可,并被广泛的应用于多种相关技术领域。 2.2.1 原始的LBP算子 LBP算子最初是设计用于纹理描述,仅仅只是用来反映某一像素点与其周围像素点的对比信息或说是该点与周围点的差异。最初LBP算子通过对每个像素的3×3邻域,把中心像素值记为阈值,然后将周围点的像素值与其比较,并将结果作为一个二进制数,来给每一个图像的像素指定一个标签。然后,对这种标签的统计直方图可作为纹理描述符。参见图2.1的基本LBP算子的例子。 (责任编辑:qin) |