基于C++的OpenCV(一)OpenCV简介

OpenCV简介

一、图像处理、计算机视觉与opencv

图像处理(Image Processing)是用计算机对图像进行分析,以达到所需要结果的技术,又称为影像处理。

图像处理技术包括图像压缩,增强和复原,匹配、描述和识别3个部分。

图像处理一般指数字图像处理(Digital Image Processing)。其中,数字图像是指用工业相机、摄像机、扫描仪等设备经过拍摄得到的一个大的二维数组。该数组的元素成为像素,其值称为灰度值。而数字图像处理是通过计算机对图像进行去除噪声、增强、复原、分割、特征提取等处理的方法和技术。

计算机视觉(Computer Vision)是一门研究如何使机器“看”的科学,具体的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图像处理,用电脑处理使之成为更适合人眼观察或传送给仪器检测的图像的一门科学。

图像处理和计算机视觉的区别在于:图像处理侧重于“处理”图像——如增强,还原,去噪,分割,等等;而计算机视觉重点在于使用计算机(也许是可移动式的)来模拟人的视觉,因此模拟才是计算机视觉领域的最终目标。

OpenCV(Open Source Computer Vision Library),是一个基于开源发行的跨平台计算机视觉库,它实现了图像处理和计算机视觉方面的很多通用算法。

二、opencv概述

opencv的全程Open Source Computer Vision Library,直译就是”开源计算机视觉库"。

opencv于1999年由Intel建立,如今由Willow Garage提供支持。它是一个基于开源发行的跨平台计算机视觉库,可以运行在Linux、Windows、Mac OS、Android、iOS、Maemo、FreeBSD、OpenBSD等操作系统上。OpenCV由一系列C函数和C++类构成,轻量且高效。强大的Opencv除了用C/C++语言进行开发和使用之外,还支持使用C#、Ch、Ruby等编程语言,同时提供了对Python、Ruby、Matlab等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

Opencv的设计目标是执行速度尽量快,主要关注实时应用。它采用优化的C/C++代码编写,能够充分利用多核处理器的优势,其主要目标是构建一个简单易用的计算机视觉框架,以帮助开发人员更便捷地设计更复杂的计算机视觉相关应用程序。

Opencv由一系列C函数和C++类构成,拥有包括500多个C函数的跨平台的中高层API。它不依赖于其他的外部库——但如果有需要,也可以使用某些外部库。Opencv覆盖了计算机视觉的许多应用领域,如工厂产品检测、医学成像、信息安全、用户界面、摄像机标定、立体视觉和机器人等。因为计算机视觉和机器学习密切相关,所以Opencv还提供MLL(Machine Learning Library)机器学习库。该机器学习库主要用于统计方面的模式识别和聚类(clustering)。MLL除了用在视觉相关的任务中,还可以方便的应用于其他机器学习场合。

opencv三大目标:
1.为基本的视觉应用提供开放且优化的源代码,以促进视觉研究的发展,从而有效地避免“闭门造车”。
2.通过提供一个通用的架构来传播视觉知识,开发者可以在这个架构上继续开展工作,所以代码应该是非常易读且可改写的;
3.opencv库采用的协议不要求商业产品继续开放代码,这使得可移植的、性能被优化的代码可以自由获取,可以促进基于视觉的商业应用的发展。

OpenCV每六个月会发布一个官方OpenCV版本

OpenCV可用于解决如下领域的问题:
人机交互、物体识别、图像分区、人脸识别、动作识别、运动跟踪、机器人

你可能感兴趣的:(c++,OpenCV,opencv,图像处理)