在 MacOS 中安装

news2024/11/16 5:39:31

  查看:OpenCV系列文章目录(持续更新中......)

上一篇:在基于 Android 相机预览的 CV 应用程序中使用 OpenCL

下一篇:基于ARM 的Linux系统的交叉编译

以下步骤已针对 MacOSX (Mavericks) 进行了测试,但也应该适用于其他版本。

所需软件包

  • CMake 3.9 or higher
  • Git
  • Python 2.7 or later and Numpy 1.5 or later

本教程将假设您的计算机上安装了 Python、Numpy 和 Git。

注意

OSX 默认附带 Python 2.7,如果您想专门使用它,则需要安装 Python 3.8。

如果安装了 XCode 和 XCode Command Line-Tools,则您的计算机上已经安装了 git。

安装 CMake

  1. 找到适合您系统的版本,并从其发布页面下载 CMake
  2. 安装 dmg 软件包并从应用程序启动它。这将为您提供 CMake 的 UI 应用程序
  3. 从 CMake 应用程序窗口中,选择菜单 Tools –> How to Install For Command Line Use。然后,按照弹出窗口中的说明进行操作。
  4. 默认情况下,安装文件夹将为 /usr/bin/,请选择 Install command line links (安装命令行链接) 提交该文件夹。
  5. 通过运行来测试它是否正常工作
cmake --version

注意

您可以使用 Homebrew 将 CMake 与

brew install cmake

获取 OpenCV 源代码

您可以使用最新的稳定 OpenCV 版本,也可以从我们的 Git 存储库中获取最新的快照。

获取最新的稳定 OpenCV 版本

  • 转到我们的下载页面。
  • 下载源存档并解压缩。

从 Git 存储库获取尖端的 OpenCV

启动 Git 客户端并克隆 OpenCV 存储库。如果您需要 OpenCV contrib 存储库中的模块,也可以克隆它。

例如

cd ~/<my_working_directory>
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git

Building OpenCV from Source Using CMake

  1. 创建一个临时目录,我们将其表示为 ,您要在其中放置生成的 Makefile、项目文件以及目标文件和输出二进制文件并输入到那里。build_opencv

    例如

    mkdir build_opencv
    cd build_opencv

    注意

    保持源代码目录清洁是一种很好的做法。在源代码树之外创建构建目录。

  2. 配置.执行 cmake [<some optional parameters>] <path to the OpenCV source directory>

    例如

    cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLES=ON ../opencv

    或者:

     cmake-gui
    • 将 OpenCV 源代码路径设置为,例如/home/user/opencv
    • 将二进制构建路径设置为 CMake 构建目录,例如/home/user/build_opencv
    • 设置可选参数
    • 运行:“配置”
    • run: “生成”
  3. 部分参数说明
    • 构建类型:(或CMAKE_BUILD_TYPE=ReleaseDebug)
    • 使用模块进行构建opencv_contrib设置为OPENCV_EXTRA_MODULES_PATH<path to opencv_contrib>/modules
    • 用于建筑文件(需要 doxygen)BUILD_DOCS=ON
    • 设置为生成所有示例BUILD_EXAMPLES=ON
  4. [可选]构建 python。设置以下 python 参数:
    • PYTHON3_EXECUTABLE = <path to python>
    • PYTHON3_INCLUDE_DIR = /usr/include/python<version>
    • PYTHON3_NUMPY_INCLUDE_DIRS = /usr/lib/python<version>/dist-packages/numpy/core/include/

      注意

      要指定 Python2 版本,您可以在上述参数中替换为 PYTHON3_PYTHON2_

  5. 编译. 从构建目录执行 make,建议在多个线程中执行此操作

    例如

    make -j7 # runs 7 jobs in parallel
  6. 通过指定变量在基于 CMake 的项目中使用 OpenCV。 find_package(OpenCV) specify OpenCV_DIR=<path_to_build_or_install_directory> variable.

通过指定变量find_package(OpenCV)OpenCV_DIR=<path_to_build_or_install_directory>在基于 CMake 的项目中使用 OpenCV。

注意:

可以使用像 Homebrew 或 pip 这样的包管理器来安装仅 OpenCV 的版本(不是最前沿的)。

参考文献:

1、《Installation in MacOS》@sajarindider

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1542472.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

KW音乐搜索参数

声明&#xff1a; 本文章中所有内容仅供学习交流&#xff0c;抓包内容、敏感网址、数据接口均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff0c;若有侵权&#xff0c;请联系我立即删除&#xff01; 逆向目标: …

IBM SPSS Statistics for Mac v27.0.1中文激活版

IBM SPSS Statistics for Mac是一款功能强大的统计分析软件&#xff0c;专为Mac用户设计&#xff0c;用于数据分析和决策支持。该软件拥有直观易用的界面和丰富多样的统计工具&#xff0c;使得用户可以轻松进行数据处理、分析和解释。 软件下载&#xff1a;IBM SPSS Statistics…

Uni-App电商模板,纯前端模板,可直接使用 实现全平台适配与高效功能

一、引言 随着移动互联网的快速发展&#xff0c;多平台应用开发已成为业界关注的焦点。Uni-App&#xff0c;作为一种前端框架&#xff0c;可以实现一套代码多端运行&#xff0c;大大提高了开发效率。本文将介绍如何使用Uni-App搭建一个电商模板&#xff0c;实现全平台适配与高…

【vue核心技术实战精讲】1.3 - 1.6 VUE 指令 (上)

前言 上节,我们学习了 Vue的起步 和 插值表达式 本节内容 Vue指令之v-text 和 v-htmlVue指令之v-if 和 v-showVue指令之v-bind绑定Vue指令之v-on事件处理 1、v-text 和 v-html {{}} 和v-text的作用是一样的 都是插入值,直接渲染 ≈ innerTextv-html既能插入值 又能插入标签…

unity无法使用道路生成插件Road Architect(ctrl和shift无法标点)

切换一下布局就行了。 附&#xff1a;Road Architect教学地址

24. UE5 RPG制作属性面板(二)

在上一篇中&#xff0c;我们创建属性面板的大部分样式&#xff0c;这一篇里面接着制作。 在这一篇里我们需要有以下几个方面&#xff1a; 在界面增加一个属性按钮。属性按钮增加事件&#xff0c;点击时可以打开属性面板&#xff0c;属性面板打开时无法再次点击按钮。点击属性面…

Google ScreenAI代表了一款先进的视觉语言模型,专为用户界面(UI)和视觉情境下的语言理解而设计

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

Vue 实现带拖动功能的时间轴

1.效果图 2. 当使用timeline-slider-vue组件时&#xff0c;你可以设置以下属性&#xff1a; date&#xff1a;用于设置时间轴滑块的初始日期&#xff0c;格式通常为 YYYY-MM-DD。 mask&#xff1a;一个布尔值&#xff0c;用于控制是否显示背景遮罩。 markDate&#xff1a;一…

月之暗面Kimi代码分析能力评测

最近打算重构一下PawSQL优化引擎中的OR条件的SELECT重写优化策略的代码&#xff0c;时间有点久&#xff0c;代码有点复杂&#xff0c;看到网上对新出了KIMI评价很高。于是尝试用它来理解一下代码。上传了此优化重写的代码&#xff0c;提问&#xff1a; 第一问&#xff0c;设计…

HTTPS:原理、使用方法及安全威胁

文章目录 一、HTTPS技术原理1.1 主要技术原理1.2 HTTPS的工作过程1.2.1 握手阶段1.2.2 数据传输阶段 1.3 HTTPS的安全性 二、HTTPS使用方法三、HTTPS安全威胁四、总结 HTTPS&#xff08;全称&#xff1a;Hyper Text Transfer Protocol over Secure Socket Layer&#xff09;&am…

UDS诊断 CANoe使用(线下实操项目)

本周末2天的时间&#xff0c;可以线下带大家对车载项目&#xff1a; uds诊断进行实操训练和CANoe工具的灵活使用 本博主从事新能源汽车的研发部&#xff0c;主要是嵌入式方面的&#xff0c;对车载测试的底层逻辑非常熟悉。 需要项目或者CANoe工具实操的可以关注并私信我

知攻善防应急靶场-Linux(2)

前言&#xff1a; 堕落了三个月&#xff0c;现在因为被找实习而困扰&#xff0c;着实自己能力不足&#xff0c;从今天开始 每天沉淀一点点 &#xff0c;准备秋招 加油 注意&#xff1a; 本文章参考qax的网络安全应急响应和知攻善防实验室靶场&#xff0c;记录自己的学习过程&am…

mac 解决随机出现的蓝色框

macbookair为什么打字的时候按空格键会出现蓝色框? - 知乎

09、ArrayList

ArrayList 文章目录 ArrayList集合与数组ArrayList集合进阶集合体系结构Collection集合List集合&#xff08;接口&#xff09;数据结构ArrayList集合LinkedList集合 Set集合HashSet 双列集合创建不可变集合 集合与数组 自动扩容 无法存储基本数据类型&#xff0c;只能将其变为…

CVPR 2024中有哪些值得关注的视频生成和视频编辑方向的论文?

Diffusion Models视频生成-博客汇总 前言:轰轰烈烈的CVPR 2024所有accept paper已经全部公开,随着Sora的爆火,视频生成和视频编辑是目前计算机视觉最火热的方向,受到了很多人的关注。这篇博客就整理盘点一下有哪些值得关注的视频生成和视频编辑方向的论文?值得做这个方向的…

网易web安全工程师进阶版课程

课程介绍 《Web安全工程师&#xff08;进阶&#xff09;》是由“ i春秋学院联合网易安全部”出品&#xff0c;资深讲师团队通过精炼的教学内容、丰富的实际场景及综合项目实战&#xff0c;帮助学员纵向提升技能&#xff0c;横向拓宽视野&#xff0c;牢靠掌握Web安全工程师核心…

HMI界面之:医疗设备界面

一、什么是医疗HMI界面 医疗HMI界面是指医疗设备或系统中的人机界面&#xff08;Human-Machine Interface&#xff09;&#xff0c;用于与医疗设备进行交互和操作的界面。它是医疗设备中的重要组成部分&#xff0c;通过图形化、直观化的界面&#xff0c;使医护人员能够方便地控…

Vue 3中实现基于角色的权限认证实现思路

一、基于角色的权限认证主要步骤 在Vue 3中实现基于角色的权限认证通常涉及以下几个主要步骤&#xff1a; 定义角色和权限&#xff1a;首先需要在后端服务定义不同的角色和它们对应的权限。权限可以是对特定资源的访问权限&#xff0c;比如读取、写入、修改等。用户认证&#…

【Linux】写个日志和再谈线程池

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;折纸花满衣 &#x1f3e0;个人专栏&#xff1a;信号量和线程池 目录 &#x1f449;&#x1f3fb;日志代码Log.cppMain.cc &#x1f449;&#x1f3fb;线程池代码LockGuard.hpp(自定义互斥锁&#xff0c;进…

vulhub中Apache Shiro 1.2.4反序列化漏洞复现(CVE-2016-4437)

Apache Shiro是一款开源安全框架&#xff0c;提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用&#xff0c;同时也能提供健壮的安全性。 Apache Shiro 1.2.4及以前版本中&#xff0c;加密的用户信息序列化后存储在名为remember-me的Cookie中。攻击者可以使用Shiro的…