当前位置: 首页 > news >正文

实战OpenCV之环境安装与配置

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打开,编译整个解决方案即可。

http://www.lryc.cn/news/415938.html

相关文章:

  • Android应用开发面试之Jetpack面试题分析汇总
  • 【数据结构】栈的概念、结构和实现详解
  • LeetCode 每日一题 2024/7/29-2024/8/4
  • Golang死锁vs操作系统死锁
  • c/c++中π怎么定义
  • 基于whisper流式语音识别
  • Web3 市场暴跌的时候,哪些token跌的少,哪些还涨了? binance 数据爬取及分析
  • ffmpeg获得视频的音频文件
  • Robot Operating System——深度解析单线程执行器(SingleThreadedExecutor)执行逻辑
  • 【TS】使用npm全局安装typescript
  • 安全用户角色权限
  • 代理模式学习
  • 深入理解Go 语言信号量 Semaphore
  • VisualStudio2019下载与安装
  • 李宏毅老师机器学习常见英语词汇
  • 人工智能时代,程序员如何保持核心竞争力?
  • WiFi to Ethernet: 树莓派共享无线连接至有线网口,自动通过Captive Poartal网页登录认证
  • 【神软大数据治理平台-高级动态SQL(接口开发)】
  • 【Java数据结构】Map和Set超详细两万字讲解(内含搜索树+哈希表)
  • 中国制造2025,会抛弃精益生产吗?
  • Rust 循环
  • 数据结构(其四)--特殊矩阵的存储
  • 系统化学习 H264视频编码(06)哥伦布编码
  • 手机在网状态接口如何对接?(一)
  • 数据结构链表2(常考习题1)(C语言)
  • Rust的运行时多态
  • sqllabs通关
  • RTSP系列四:RTSP Server/Client实战项目
  • sqli-labs-php7-master第11-16关
  • c++初阶 string的底层实现