OpenCV4系统化学习路线图(新版)

2024-05-29 11:12:50 浏览数 (1)

一、什么是OpenCV

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库。它由英特尔公司发起并参与开发,以BSD许可证授权发行,可以在商业和研究领域中免费使用。OpenCV提供了大量的计算机视觉、图像处理和模式识别的算法,包括实时图像处理、视频分析、特征检测、目标跟踪、人脸识别、物体识别、图像分割、光流法、立体视觉、运动估计、机器学习和深度学习等。

OpenCV是一个跨平台的库,支持多种操作系统,包括Linux、Windows、Android、Mac OS和iOS等。它使用C 编写,同时也提供了Python、Java、MATLAB等语言的接口,方便不同编程语言的开发者使用。由于OpenCV的开源性和跨平台性,它已经成为计算机视觉领域最受欢迎的库之一,广泛应用于工业检测、医学影像处理、智能交通系统、安防监控系统、机器人视觉、游戏开发等领域。

OpenCV的设计初衷是实现计算机视觉的自动化,帮助计算机去理解我们的世界,以便自动完成一些基本的任务。它提供了一系列的算法和工具,使得开发者可以更加便捷地实现各种计算机视觉应用。同时,OpenCV也支持多种硬件加速技术,如Intel的IPP和GPU加速,使得计算机视觉应用的性能得到了极大的提升。

二、OpenCV4软件特性

OpenCV4官方版是一款开源的跨平台计算机视觉库。OpenCV4最新版软件兼容性强,支持Linux、Windows、Mac OS等多种操作系统,适用于机互动、物体识别、运动跟踪、图像分割等领域。OpenCV4软件内置了Python、MATLAB、Ruby等语言的接口,用户能够轻松的使用和修改代码。

三、opencv主要模块

calib3d:该模块由相机校准(calibration)和三维重建(3d)两个部分组成,主要用于相机标定与三维视觉等;

core:OpenCV的内核模块,定义了基础数据结构与基础计算;

dnn:该模块主要用于深度学习推理部署,不支持模型训练;

features2d:该模块主要用于特征点处理,例如特征点检测与匹配等;

flann:FLANN为快速最近邻算法(Fast Library for Approximate Nearest Neighbors)的缩写,该模块包含快速近似最近邻搜索和聚类等功能;

gapi:该模块对图像处理算法做了加速处理,不属于OpenCV的功能模块;

highgui:该模块用于创建图像化界面操作,例如创建和操作图像显示窗口、鼠标与键盘事件处理,进度条等图像化交互操作;

imgcodecs:该模块负责图像文件读写,如图像读取与保存;

imgproc:该模块是OpenCV图像处理最重要的模块,主要功能如图像滤波、图像几何变换、直方图操作等;

ml:该模块为机器学习模块,包含常见的机器学习算法,如支持向量机和随机森林等;

objdetect:该模块主要用于图像目标检测,例如Haar特征检测等;

photo:该模块主要负责照片处理,如照片修复和去噪等;

stitching:该模块负责图像拼接,功能包括图像特征点寻找与匹配等图像拼接技术;

video:该模块用于视频分析,如运动估计、背景分离等;

videoio:该模块负责视频读写,主要视频文件的读取和写入。

四、opencv4比opencv3多了哪些

OpenCV 4相较于OpenCV 3,主要增加了对SIFT与SURF的支持、改进了DNN模块、增加了对特定网络结构的支持、新增了DNN例程、以及功能提升。

对SIFT与SURF的支持:在OpenCV 3中,SIFT与SURF的API调用文件是包含在扩展模块中的。而在OpenCV 4中,如果想要使用SIFT与SURF,需要从源代码中通过CMake编译生成Python版本的安装包。

DNN模块的改进:OpenCV 4对DNN模块进行了改进,包括:

增加了对ONNX中LSTM、Broadcasting、Algebra over constants、Slice with multiple inputs的支持。

增加了对DarkNet中grouped convolutions、sigmoid、swish、scale_channels的支持。

新增了对MobileNetV3-SSD目标检测网络的支持。

改进了对TensorFlow、Darknet和ONNX模型导入的功能。

新增的DNN例程:

人体解析(服饰分割)例程Clothes parts segmentation。

DaSiamRPN目标跟踪例程,该算法出自中科院和商汤科技ECCV2018的论文Distractor-aware Siamese Networks for Visual Object Tracking。

功能提升:

imgproc模块中的霍夫变换进行圆检测的HoughCircles()函数新增了HOUGH_GRADIENT_ALT实现,显著提高了圆检测的召回率和精度。

这些改进和新增功能使得OpenCV 4在计算机视觉领域的应用更加广泛和高效。

五、opencv配置

配置OpenCV环境主要涉及下载、安装、环境变量设置、以及在Visual Studio中添加必要的目录和依赖项。以下是详细的步骤:

1、下载和安装OpenCV:

访问OpenCV官网,下载适合Windows版本的OpenCV。

运行下载的exe文件进行安装

2、环境变量设置:

在系统属性的高级设置中,进入环境变量设置。

在系统变量中,找到并编辑Path变量,添加OpenCV的路径。

对于64位系统,通常需要添加的路径是opencvbuildx64vc16bin和opencvbuildbin。

3、Visual Studio中添加目录和依赖项:

打开Visual Studio,创建一个新的C 项目。

在项目属性中,添加包含目录(Include Directories),库目录(Library Directories),以及必要的静态和动态链接库。

4、测试配置:

创建一个C 源文件,编写简单的代码来测试摄像头读取或图像显示功能。

如果程序能够正确运行并显示图像或视频流,则说明OpenCV环境配置成功。

这些步骤涵盖了从下载安装到环境配置的整个过程,确保在配置时注意区分Debug和Release模式下的不同设置,以及根据具体的OpenCV版本调整路径和文件名。

0 人点赞