一、标准定义:
OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库【说白了就是有相应的视觉算法和视觉函数方便我们开发】。既然跨平台,那必须支持很多常见的系统,linux必然是其中一个!主要接口是C++哦!发起公司英特尔公司。
二、出现的意义:
①高效益:计算机视觉市场巨大而且持续增长,且这方面没有标准API,主要是它用C/C++语言编写的,底层语言肯定是高效。加上市场大,那肯定是高效益。
②开源性:OpenCV是一个开源库,可以免费获取和使用。
③跨平台:就是这个库可以在各个系统中使用,linux咱不说,但是可以在windows中开发,你就知道为何她火了!(你听过几个做windows开发的?)
④功能强:提供了丰富而强大的图像处理和计算机视觉算法,包括图像滤波、特征检测、目标跟踪、物体识别、摄像头标定等。有图像处理和机器视觉就得有她!【如果摄像头【为了简单,笼统说摄像头】是眼睛的话,可以说opencv就是眼睫毛,睫毛存在可以阻挡异物入眼<=>可以看成opencv其中某算法的滤波作用。眼睛边有些不重要的眼睫毛不存在<=>不是每个视觉处理都需要所有的opencv的算法。
三、作用(应用):
[1]图像处理:OpenCV提供了大量的图像处理功能,包括图像滤波、边缘检测、图像变换、颜色空间转换等。这些功能使得开发者能够对图像进行各种处理和增强,从而改善图像质量、提取图像特征等。
[2]特征检测与描述:OpenCV支持多种特征检测与描述算法,如SIFT、SURF、ORB等,这些算法能够检测图像中的关键点和描述符,用于图像匹配、目标识别、物体跟踪等应用。
[3]目标检测与识别:OpenCV提供了一些经典的目标检测和识别算法,如Haar特征级联分类器、HOG特征+SVM分类器、深度学习模型等。这些算法可以用于人脸检测、物体识别、行人检测等任务。
[4]图像分割与轮廓提取:OpenCV包含多种图像分割算法,如基于阈值的分割、边缘检测、分水岭算法等。这些算法可以将图像分割成不同的区域,并提取出区域的轮廓信息。
[5]相机标定与几何变换:OpenCV提供了相机标定的工具和算法,可以通过对图像中的特定模式进行分析,从而确定相机的内外参数。此外,OpenCV还支持图像的几何变换,如平移、旋转、缩放等。
[6]视频分析与处理:OpenCV支持视频的读取、写入和处理,包括视频流的捕获、帧间差分、光流估计、物体跟踪等。这使得开发者能够开发出基于视频的应用,如视频监控、运动分析等。
[7]机器学习与深度学习:OpenCV提供了一些机器学习和深度学习的工具和接口,如支持向量机(SVM)、随机森林(Random Forest)、深度神经网络(DNN)等。这些工具可以用于图像分类、目标检测、人脸识别等任务。
总结:如有不解,可以去其官网看看。你或许可能知道其可以用来干嘛!
OpenCV - Open Computer Vision Library