计算机视觉与OpenCV入门指南
1. 计算机视觉与OpenCV简介
在我们清醒的时候,很大一部分信息是通过视觉获取的。眼睛不断转动并按需调整焦点,而大脑则出色地处理双眼传来的信息,构建出周围世界的3D地图,并让我们意识到自己在其中的位置和方向。如果机器人和计算机也能像人类一样看和理解事物,那将是一件很酷的事情。
对于机器人来说,“看”本身并不是太大问题,各种相机都很容易获取和使用。但对于连接相机的计算机而言,相机传输的只是随时间变化的一组数字。这就引出了计算机视觉的概念,它旨在让机器人根据所见信息做出智能决策。
1.1 OpenCV概述
OpenCV(Open-source Computer Vision)是计算机视觉领域的多功能工具。它拥有众多模块,能解决大量计算机视觉问题。其架构和内存管理尤为实用,为处理图像和视频提供了框架,使用OpenCV算法或自定义算法时,无需担心图像内存的分配和释放。
1.2 OpenCV的历史
OpenCV最初是英特尔研究项目,旨在推动CPU密集型应用技术发展。主要贡献者包括英特尔俄罗斯研究团队和性能库团队。该项目目标如下:
- 提供开放且优化的基础视觉代码,推动视觉研究(避免重复造轮子)。
- 提供通用基础设施,传播视觉知识,使代码更易读和可移植。
- 提供可移植、性能优化的免费代码,推动基于视觉的商业应用,且应用本身无需开源或免费。
2000年,OpenCV首个alpha版本在IEEE计算机视觉与模式识别会议上发布,目前由非营利组织OpenCV.org拥有。