OpenCV是什么
OpenCV,英文全称为Open Source Computer Vision Library,是一个开源的计算机视觉和机器学习软件库。它设计用于提供一系列功能强大的算法,以帮助开发者处理图像和视频数据,实现各种视觉任务,包括:图像处理、视频分析、物体识别、人脸识别、动作识别、机器学习等。OpenCV以其跨平台性著称,能够在多种操作系统上运行,比如:Windows、Linux、Android和Mac OS,这使得它成为学术界和工业界广受欢迎的工具。
OpenCV库主要由C++编写,但它为Python、Java、C#、MATLAB等多种编程语言提供了接口,极大地降低了开发者的入门门槛。尤其是在Python社区中,OpenCV的使用尤为广泛。OpenCV的核心特性包括实时处理能力、优化的硬件加速、以及对GPU计算的支持,这些特性使得它在需要高性能计算的视觉应用中表现卓越。
OpenCV的主要特点可以归纳为以下五点,具体如下。
1、跨平台:可以在不同的操作系统上运行。
2、免费开源:基于BSD许可发行,在商业和研究项目中均可以使用。
3、高效的API:由C/C++编写,具有优化的算法和高效的内存管理。
4、丰富的功能:支持图像滤波、几何变换、特征检测、目标跟踪、机器学习等。
5、良好的文档和社区支持:有大量的教程、示例代码和社区论坛,方便用户学习和交流。
OpenCV源码获取
OpenCV的源代码可以从官方网站下载,以4.9.0版本为例,点击下图中的Sources按钮,即可下载压缩包opencv-4.9.0.zip。下载完成后,将压缩包解压到某个目录,比如:G:\opencv-4.9.0。
opencv-4.9.0.zip压缩包中并不包含contrib模块,如果需要使用contrib模块,请单独下载。contrib模块是OpenCV项目的一个扩展库,它包含了大量实验性、研究性质以及一些由于专利或稳定性原因未被包含在OpenCV核心库中的算法和功能。contrib模块的下载地址为:https://github.com/opencv/opencv_contrib/tags,请确保下载与OpenCV核心库版本匹配的contrib库。下载完成后,将压缩包解压到某个目录,比如:G:\opencv_contrib-4.9.0。
OpenCV的编译和配置
这里以Windows操作系统和Visual Studio 2019为例,讲解使用CMake编译和配置OpenCV的具体步骤。
1、在OpenCV源代码的根目录下创建一个build目录。
2、打开CMake GUI,设置Where is the source code为OpenCV源代码的路径,设置Where to build the binaries为刚创建的build目录。点击Configure按钮,选择Visual Studio 16 2019和默认的本地编译器。
3、搜索OPENCV_EXTRA_MODULES_PATH,将contrib模块下的modules目录输入进去,如下图所示。
4、搜索OPENCV_ENABLE_NONFREE,按需进行设置。OPENCV_ENABLE_NONFREE选项用于指示在编译OpenCV时,是否包含非免费组件。非免费组件通常指的是受专利保护或者有特殊许可要求的算法和技术,比如:SIFT(尺度不变特征变换)等。由于这些算法的专利限制,它们不能在开源许可下自由分发,因此OpenCV默认情况下不包含这些功能。
5、点击Configure按钮,直到没有红色提示为止。点击Generate按钮,生成Visual Studio解决方案文件。
6、进入build目录,双击生成的OpenCV.sln文件,会使用Visual Studio 2019打开,编译整个解决方案即可。