首页 > 其他分享 >OpenCV4.9.0开源计算机视觉库安装概述

OpenCV4.9.0开源计算机视觉库安装概述

时间:2024-03-14 16:01:56浏览次数:18  
标签:OpenCV OpenCV4.9 编译器 opencv 开源 构建 版本 概述 安装

上一篇:OpenCV 环境变量参考
下一篇:​​​​​​​OpenCV4.9.0配置选项参考

引言:

OpenCV是一款开源的计算机视觉库,可用于实时的图像处理、图形识别、机器学习等领域。它具有跨平台、高速、易用等特点,并广泛应用于各种领域,如医学、安防、自动驾驶、AR/VR等。本文将简要介绍如何基于Python环境,安装最新的OpenCV4.9.0版本,并提供相应的命令和代码示例,以帮助读者更快更简单地上手使用OpenCV。创作不易,要是对您有用请加个关注或点个赞,非常感谢了!前面500粉丝我会互关。

正文:

有两种方法可以在您的机器上安装 OpenCV:为您的平台下载预构建版本或从源代码编译。OpenCV简介可以到下面文章查看:OpenCV(一个C++人工智能领域重要开源基础库) 

预构建版本

在许多情况下,您可以找到满足您需求的 OpenCV 预构建版本。

OpenCV 核心团队的软件包

每个版本都会发布使用默认参数和最新编译器构建的 Android、iOS 和 Windows 包,它们不包含opencv_contrib模块。

第三方软件包

其他组织和个人维护他们自己的 OpenCV 二进制发行版。例如:

从源代码构建

现有的二进制包可能不适用于您的用例,那么您必须自己构建 OpenCV 的自定义版本。本部分简要概述了构建过程,请查看特定平台的教程以获取实际的构建说明。

OpenCV 使用 CMake 构建管理系统进行配置和构建,因此本节主要介绍使用 CMake 构建软件的通用过程。

步骤 0:先决条件

安装 C++ 编译器和生成工具。在 *NIX 平台上,它通常是 GCC/G++ 或 Clang 编译器以及 Make 或 Ninja 构建工具。在 Windows 上,它可以是 Visual Studio IDE 或 MinGW-w64 编译器。Android NDK 中提供了适用于 Android 的原生工具链。XCode IDE 用于为 OSX 和 iOS 平台构建软件。

从官方网站或其他来源安装 CMake。

获取其他第三方依赖项:具有额外功能的库,如解码视频或显示 GUI 元素;提供所选算法的优化实现的库;用于文档生成和其他附加功能的工具。查看 OpenCV 配置选项参考,了解可用选项和相应的依赖关系。

步骤 1:获取软件源

典型的软件项目由一个或多个代码存储库组成。OpenCV 有两个带有代码的存储库:opencv - 具有稳定且积极支持的算法的主存储库,以及包含实验和非自由(专利)算法的 opencv_contrib;以及一个包含测试数据的存储库:opencv_extra

您可以下载具有完整历史记录的存档或克隆存储库形式的存储库快照。

要下载快照存档,请执行以下操作:

要克隆存储库,请在控制台中运行以下命令(必须安装 git):

git clone https://github.com/opencv/opencv
git -C opencv checkout <some-tag>

#也可以这个组命令
git clone https://github.com/opencv/opencv_contrib
git -C opencv_contrib checkout <same-tag-as-opencv>

#也可以这个组命令
git clone https://github.com/opencv/opencv_extra
git -C opencv_extra checkout <same-tag-as-opencv>

注意:如果要使用多个存储库构建软件,请确保所有组件都相互兼容。对于 OpenCV,这意味着 opencv 和 opencv_contrib 存储库必须在同一标签下签出,或者所有快照存档都从同一版本下载。在选择下载哪个版本时,要考虑到您的目标平台和开发工具版本,最新版本的 OpenCV 可能会遇到非常旧的编译器的构建问题,反之亦然。我们建议使用最新版本和新的操作系统/编译器组合。

第 2 步:配置

在此步骤中,CMake 将验证所有必要的工具和依赖项是否可用且与库兼容,并将为所选的构建系统生成中间文件。它可以是 Makefile、IDE 项目和解决方案等。通常此步骤在新创建的构建目录中执行:

cmake -G<generator> <configuration-options> <source-directory>

注意

cmake-gui应用程序允许使用图形用户界面查看和修改可用选项。有关详细信息,请参阅 Resources

第 3 步:构建

在构建过程中,源文件被编译为目标文件,这些文件被链接在一起或以其他方式组合到库和应用程序中。可以使用通用命令运行此步骤:

cmake --build <build-directory> <build-options>

...或者底层构建系统可以直接调用:

(可选)第 3 步:安装

在安装过程中,生成结果和生成目录中的其他文件将被复制到安装位置。默认安装位置在 UNIX 和 Windows 上。可以在配置步骤中通过设置选项更改此位置。若要执行安装,请运行以下命令:/usr/localC:/Program FilesCMAKE_INSTALL_PREFIX

cmake --build <build-directory> --target install <other-options>

注意

此步骤是可选的,OpenCV 可以直接从构建目录中使用。

如果安装根目录位置是受保护的系统目录,则必须使用超级用户或管理员权限(例如 )。sudo cmake ...

(可选)第 4 步:构建插件

可以解耦一些 OpenCV 依赖项,并通过将部分代码提取到动态加载的插件中来使它们成为可选的。它有助于生成自适应二进制发行版,这些发行版可以在依赖性较少的系统上运行,并且只需安装缺失的库即可扩展功能。目前,模块 corevideoio 和 highgui 支持这种机制作为其某些依赖项。在某些情况下,可以通过设置选项(如 或)与 OpenCV 一起构建插件,可以在 OpenCV 配置选项参考中找到与此场景相关的更多选项。在其他情况下,插件应该在自己的构建过程中单独构建,本节将介绍这种独立的构建过程。VIDEOIO_PLUGIN_LISTHIGHGUI_PLUGIN_LIST

注意

建议使用与用于 OpenCV 构建的编译器、配置和构建选项兼容的编译器、配置和构建选项,否则生成的库可能会拒绝加载或导致其他运行时问题。请注意,由于 OpenCV 和相应的第三方库之间存在额外的障碍,当动态加载后端时,某些功能可能会受到限制或运行速度变慢。

构建过程类似于 OpenCV 主构建,但您必须使用位于相应子目录中的特殊 CMake 项目,这些文件夹也可以包含引用脚本和 Docker 镜像。为插件使用名称前缀很重要,这样加载程序才能找到它们。每个受支持的前缀只能用于加载一个库,但是可以探测单个前缀的多个候选库。例如,您可以拥有 libopencv_videoio_ffmpeg_3.so 和 libopencv_videoio_ffmpeg_4.so 插件,第一个可以成功加载的插件将占用内部插槽并停止探测过程。下表列出了可能的前缀和项目位置:opencv_<module>_<backend>

模块后端位置
核心parallel_tbb、parallel_onetbb parallel_openmpopencv/modules/core/misc/plugins
高级GTK、GTK2、GTK3opencv/modules/highgui/misc/plugins
视频IOffmpeg、gstreamer、intel_mfx、msmfopencv/modules/videoio/misc

例:

# TBB检测的设置环境,例如: # export TBB_DIR=<dir-with-tbb-cmake-config> cmake -G<generator> \ -DOPENCV_PLUGIN_NAME=opencv_core_tbb_<后缀> \ -DOPENCV_PLUGIN_DESTINATION=<dest-folder> \ -DCMAKE_BUILD_TYPE=<config> \ <opencv>/modules/core/misc/plugins/parallel_tbb cmake --build 。--config <config>

注意:在 Windows 上,插件必须与现有的 OpenCV 版本链接。将 environment 或 CMake 变量设置为带有 OpenCVConfig.cmake 文件的目录,它可以是 OpenCV 构建目录或执行安装位置的某个路径。OpenCV_DIR

标签:OpenCV,OpenCV4.9,编译器,opencv,开源,构建,版本,概述,安装
From: https://blog.csdn.net/2301_78348935/article/details/136613552

相关文章

  • ThingsBoard 开源物联网平台
    文章目录1.ThingsBoard介绍2.ThingsBoard架构2.1.单体架构2.2.微服务架构3.物联网网关4.边缘计算ThingsBoard#ThingsBoardhttps://iothub.org.cn/docs/iot/https://iothub.org.cn/docs/iot/thingsboard-ce/1.ThingsBoard介绍ThingsBoard是一个开源物联......
  • 5_运行时数据区概述
    运行时数据区概述内存是非常重要的系统资源,承载着操作系统和应用程序的实时运行。JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM高效稳定的运行。不同的JVM对内存的划分方式和管理机制存在着部分差异。结合JVM虚拟机规范,来讨论下经典的JVM内存布局。J......
  • 一个开源的分布式在线教育系统
    大家好,我是Java陈序员。今天给大家介绍一个开源的分布式在线教育系统,支持课程在线播放、课程购买等功能。关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。项目介绍roncoo-education——一个分布式在线教育系统。目前主要功能......
  • OpenAI官宣开源Transformer Debugger!不用再写代码了
    刚刚,OpenAI超级对齐团队负责人官宣开源Transformer调试器。研究人员不用写代码,就能快速探索LLM的内部构造了!这项工作,是用GPT-4来分析GPT2中输入和输出之间的对应关系,从而推断各个神经元可能承担什么语言特征编码职责,如词性、句法结构、上下文关系等。如果去掉某个神经元后,模型......
  • 生物分子体系结构预测开源模型RoseTTAFold All-Atom的conda环境部署及使用
    欢迎浏览我的CSND博客!Blockbuater_drug…点击进入文章目录前言一、RoseTTAFoldAll-Atom(RFAA)是什么?二、安装步骤1.安装mamba(非必须的,conda也可以)2.下载RoseTTAFold-All-Atom3.创建conda环境并安装4.安装SE3T5.准备cs-blast6.安装signalp67.下载序列和模板......
  • 【开源】SpringBoot框架开发人事管理系统
    目录一、摘要1.1项目介绍1.2项目录屏二、功能模块2.1管理员功能模块2.2普通员工功能模块2.3答辩文案三、系统展示四、核心代码4.1查询职称4.2新增留言回复4.3工资申请4.4工资审核4.5员工请假五、免责说明一、摘要1.1项目介绍基于JAVA+Vue+SpringBo......
  • 【开源】SpringBoot框架开发班级考勤管理系统
    目录一、摘要1.1项目介绍1.2项目录屏二、功能模块2.1系统基础支持模块2.2班级学生教师支持模块2.3考勤签到管理2.4学生请假管理三、系统设计3.1功能设计3.1.1系统基础支持模块3.1.2班级学生教师档案模块3.1.3考勤签到管理模块3.1.4学生请假管理模块3.2......
  • 【开源】SpringBoot框架开发假日旅社管理系统
    目录一、摘要1.1项目介绍1.2项目录屏二、功能模块2.1系统介绍2.2QA问答三、系统展示四、核心代码4.1查询民宿4.2新增民宿评论4.3查询民宿新闻4.4新建民宿预订单4.5查询我的民宿预订单五、免责说明一、摘要1.1项目介绍基于JAVA+Vue+SpringBoot+MySQ......
  • 自动生成单元测试、外挂开源代码库等新功能,上线JetBrains IDEs的CodeGeeX插件!
    CodeGeeX第三代模型发布后,多项基于第三代模型能力的新功能今天也同步上线JetBrainsIDEs全家桶。用户可以在IDEA、PyCharm等JetBrains系的IDE中,搜索下载CodeGeeXv2.5.0版本,深度使用最新功能。一、新模型加持的代码补全和智能问答以IDEA为例,在v2.5.0版本的CodeGeeX插件中,用户可......
  • AXS4054 爱协生 单节锂电池 线性充电器芯片 600mA 概述文
    描述AXS4054是一款单节锂离子电池恒流/恒压线性充电器,简单的外部应用电路非常适合便携式设备应用,适合USB电源和适配器电源工作,内部采用防倒充电路,不需要外部隔离二极管。热反馈可对充电电流进行自动调节,以便在大功率操作或高环境温度条件下对芯片温度加以限制。AXS4054......