文档下载
网盘链接: https://pan.baidu.com/s/1wevG_1BOE8YLO_GIyuWIfA
提取码: 97fa
部分内容展示
据国外学者统计,人类从外部世界获取的信息大约有是由眼睛看到的。通过这组数据可以发现人类对视觉所获取的信息有着过多的利用,不仅说明视觉信息的丰富,也体现了人类重视视觉功能给人们所带来的知识与图形图像有着密切的联系。在生活的许多场合中,我们在也找不出哪种形式比图像所能传送的信息更为丰富多彩。既然视觉系统是获得外界主要信息的载体,能够对图像信息进行处理是人类想要计算机实现智能化首先面临的难题。随着计算机信息技术的趋成熟和相关硬件设备的广泛普及,特别是人工智能领域相关研究的不断深入,使得这样一种趋势越发明显,即凡是人类视觉能够完成的任务,科学家和学者们都在努力尝试让计算机去完成,由此也形成了一门新的科学——计算机视觉。
OpenCV,全称为Open Source Computer Vision Library,是Intel公司资助的开源计算机视觉库。它由一系列C函数和少量C++类构成,实现了图像处理和计算机视觉方面的很多通用算法。其重要特性包括:(1)拥有包括300多个C函数的跨平台的中、高层API。它不依赖于其它的外部库—尽管也可以使用某些外部库。(2)对非商业应用和商业应用都是免费的。
在过去的十年,随着处理器速度和内存容量以摩尔定律增长,计算机视觉的研究和应用也得到了迅速的发展。以往传统的开发方法要求工程人员在完成的硬件设计的同时,自己编码实现所以底层的算法,所有的图像处理函数都要从头编写,既造成时间和精力上的浪费,又难以保证稳定性、实用性和通用性,越来越难以满足现实的需求。为了解决理论到应用的难题,出现了众多的计算机视觉和图像处理软件包。大多数软件包是用C/C++编写的。例如,Aurora公司开发的LEADTOOLS是一套商用化计算机视觉包,它包括了图像处理服务器开发工具。允许用户创建各种基于网络的图像处理服务程序。这些软件包为计算机图像分析和机器视觉提供了极大的便利。但也存在一些不足之处:(1)大多数软件包没有高级数学计算函数,并且这些软件包都不包括如目标跟踪、摄像机标定、姿态识别、脸谱识别和三维重建等高层函数。(2)Matlab是功能较为强大的科学计算和分析平台,它提供了图像处理工具包,也提供了较为丰富的数学计算函数,但在Matlab环境下的运行速度令人担忧。虽然Matlab可以通过编译器将m文件转化为C代码。但是转化后的C代码的执行效率和可读性存在较大问题。(3)除Matlab和LEADTOOLS,大部分软件包不支持网络服务器结构的应用程序的开发;Matlab的网络接口机制较为复杂,且同样存在运行效率的问题。