logo头像

小玉的技术博客

走进openCV

openCV 是什么

OpenCV是一个开源的跨平台计算机视觉库,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV 其实就是一堆 C 和 C++语言的源代码文件,这些源代码文件中实现了许多常用的计算机视觉算法。例如 C 接口函数 cvCanny()实现了 Canny 边缘提 取算法。可以直接将这些源代码添加到我们自己的软件项目中,而不需要自己再 去写代码实现 Canny 算法,也就是不需要重复“造轮子”。
由于 OpenCV 中源代码文件巨多,根据算法的功能,将这些源文件分到多个 模块中:core、imgproc、highgui 等。将每个模块中的源文件编译成一个库文件 (如 opencv_core.lib、opencv_imgproc.lib、opencv_highgui.lib 等),用户在使用时, 仅将所需的库文件添加到自己的项目中,与自己的源文件一起连接成可执行程序 则可。

openCV介绍

OpenCV 的全称是 Open Source Computer Vision Library,是一个开放源代码的 计算机视觉库。OpenCV 是最初由英特尔公司发起并开发,以 BSD 许可证授权发 行,可以在商业和研究领域中免费使用,现在美国 Willow Garage 为 OpenCV 提 供主要的支持。OpenCV 可用于开发实时的图像处理、计算机视觉以及模式识别 程序,目前在工业界以及科研领域广泛采用。

openCV的前世今生

OpenCV 诞生于 Intel。Intel 最初希望提供一个计算机视觉库,使之能充分发
掘 CPU 的计算能力,当然更希望以此促进 Intel 的产品的销售。OpenCV 最初的开
发工作是由 Intel 在俄罗斯的团队实现。这里面有两个关键人物,一个是 Intel 性
能团队(Intel’s Performance Library Team)的李信弘(Shinn Lee)先生,他是团队
的经理,负责 IPP 等库,给予 OpenCV 很大的支持。另一个关键人物是 Vadim
Pisarevsky,Vadim 在 Intel 负责 OpenCV 的项目管理、代码集成、代码优化等工
作。在后期 Intel 支持渐少的时候,是 Vadim Pisarevsky 一直在维护着 OpenCV。
2007 年 6 月,受本书作者之邀,李信弘和 Vadim Pisarevsky 作为嘉宾参加了在北 1
京举行的“开放源代码计算机视觉库(OpenCV)研讨会” ,并做了非常有价值的报 告。
在 2008 年,一家美国公司,Willow Garage2,开始大力支持 OpenCV,Vadim Pisarevsky 和 Gary Bradski 都加入了 Willow Garage。Gary Bradski 也是 OpenCV 开 发者中的元老级人物,他曾出版《Leaning OpenCV》一书,广受欢迎。
Willow Garage 是一家机器人公司,致力于为个人机器人开发开放的硬件平 台和软件。现在已经开发了 PR2 机器人,并支持 ROS、OpenCV、PCL 等软件。ROS (Robot Operating System)是用于机器人的操作系统,是一个开放源代码的软件, OpenCV 作为 ROS 的视觉模块嵌入。
自从获得 Willow Garage 支持后,OpenCV 的更新速度明显加快。大量的新特 性被被加入 OpenCV 中,很多算法都是最近一两年的新的科研成果。OpenCV 正日益成为算法研究和产品开发不可缺少的工具。

openCV采用的协议

OpenCV 采用 BSD 协议,这是一个非常宽松的协议。简而言之,用户可以修改 OpenCV 的源代码,可以将 OpenCV 嵌入到自己的软件中,可以将包含 OpenCV 的软件销售,可以用于商业产品,也可以用于科研领域。BSD 协议并不具有“传 染性”,如果你的软件中使用了 OpenCV,你不需要公开代码。你可以对 OpenCV 做任何操作,协议对用户的唯一约束是要在软件的文档或者说明中注明使用了 OpenCV,并附上 OpenCV 的协议。
在这个宽松协议下,企业可以在 OpenCV 基础之上进行产品开发,而不需要 担心版权问题(当然你要注明使用了 OpenCV,并附上 OpenCV 的协议)。科研领 域的研究者,可以使用 OpenCV 快速地实现系统原型。因此可以这样说,OpenCV 的协议保证了计算机视觉技术快速的传播,让更多的人从 OpenCV 受益。

支付宝打赏 微信打赏

赞赏是不耍流氓的鼓励