MacOS Catalina 在pyenv下克隆源码编译opencv 4.5.5

2024-04-18 08:48

本文主要是介绍MacOS Catalina 在pyenv下克隆源码编译opencv 4.5.5,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在我的这篇博文MacOS Catalina编译安装openCV 4.2.0(2020.3月)中, 使用homebrew来对python进行版本管理,源码直接下载的压缩包。本文则使用pyenv来进行python版本管理,openCV4.5.5源码从gitee镜像克隆而来。

前提:已经使用pyenv进行python版本管理

1. 安装cmake

brew install cmake

2. 创建一个python 3.6.8的虚拟环境并激活它,名称为py3.6.8,并安装numpy

pyenv install 3.6.8
pyenv virtualenv 3.6.8 py3.6.8
pyenv activate py3.6.8
pip install numpy

3. 克隆代码,切换到4.5.5标签(注意4.5.5不是一个分支)

cd ~
git clone https://gitee.com/mirrors/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
cd opencv_contrib
git switch 4.x
cd ~/opencv
git switch 4.5.5
mkdir build && cd build

也可以从Github页面:Opencv Releases 直接下载源码:
注意解压之后如果二级目录,需要移动

cd ~
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.5.5.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.5.5.zip
unzip opencv.zip
unzip opencv_contrib.zip
#解压后最好给文件夹改名
mv ./opencv-4.5.5 opencv
mv ./opencv_contrib-4.5.5 opencv_contrib
cd ~/opencv
mkdir build && cd build

4. 配置

cmake -D CMAKE_BUILD_TYPE=RELEASE \-D CMAKE_INSTALL_PREFIX=~/.pyenv/versions/3.6.8/envs/py3.6.8/opencv455\-D OPENCV_GENERATE_PKGCONFIG=ON \-D PYTHON3_EXECUTABLE=$PYENV_ROOT/shims/python \-D PYTHON3_LIBRARY=~/.pyenv/versions/3.6.8/lib/libpython3.6m.a \-D PYTHON3_NUMPY_INCLUDE_DIRS=~/.pyenv/versions/3.6.8/envs/py3.6.8/lib/python3.6/site-packages/numpy/core/include/ \-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \-D BUILD_opencv_python2=OFF \-D BUILD_opencv_python3=ON \-D INSTALL_PYTHON_EXAMPLES=ON \-D INSTALL_C_EXAMPLES=OFF \-D OPENCV_ENABLE_NONFREE=ON \-D BUILD_EXAMPLES=ON \-D ENABLE_FAST_MATH=ON \-D WITH_LIBV4L=ON \-D WITH_OPENGL=ON ..

需要注意PYTHON3_EXECUTABLEPYTHON3_LIBRARYPYTHON3_NUMPY_INCLUDE_DIRS的路径,本文是按照pyenv的虚拟配置(pyenv的3.6.8版本的lib和py3.6.8虚拟环境的numpy)来对应调整的。
cmake配置完成如果如下图所示,Python 3下面的Interpreter,Libraries,numpy,install path都指向pyenv虚拟环境的正确路径,说明配置是正确的:
在这里插入图片描述
如果如下图所示,Python 3下面的Interpreter,Libraries,numpy,install path不完整,那请反复检查各个配置路径。
在这里插入图片描述

5. 编译

sudo make -j4 && make install

如果遇到如下错误:

ld: warning: directory not found for option '-L/usr/local/opt/ruby/lib'

那就自己建一个/usr/local/opt/ruby/lib'这个文件夹就行了。

6. 验证

(py3.6.8)~/opencv/build$ python
Python 3.6.8 (default, Mar 23 2022, 11:13:20)
[GCC Apple LLVM 12.0.0 (clang-1200.0.32.29)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'4.5.5'

参考资料:

  1. OpenCV: Installation in MacOS
  2. ubuntu 在pyenv环境中安装 opencv
  3. Build opencv for ubuntu 16.04 with pyenv
  4. 在Ubuntu 16.04下装炼丹炉(python3+pyenv+opencv3+cuda8+tensorflow+mxnet+warpctc)
  5. python3之opencv安装

这篇关于MacOS Catalina 在pyenv下克隆源码编译opencv 4.5.5的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/914307

相关文章

在macOS上安装jenv管理JDK版本的详细步骤

《在macOS上安装jenv管理JDK版本的详细步骤》jEnv是一个命令行工具,正如它的官网所宣称的那样,它是来让你忘记怎么配置JAVA_HOME环境变量的神队友,:本文主要介绍在macOS上安装... 目录前言安装 jenv添加 JDK 版本到 jenv切换 JDK 版本总结前言China编程在开发 Java

OpenCV在Java中的完整集成指南分享

《OpenCV在Java中的完整集成指南分享》本文详解了在Java中集成OpenCV的方法,涵盖jar包导入、dll配置、JNI路径设置及跨平台兼容性处理,提供了图像处理、特征检测、实时视频分析等应用... 目录1. OpenCV简介与应用领域1.1 OpenCV的诞生与发展1.2 OpenCV的应用领域2

在Java中使用OpenCV实践

《在Java中使用OpenCV实践》用户分享了在Java项目中集成OpenCV4.10.0的实践经验,涵盖库简介、Windows安装、依赖配置及灰度图测试,强调其在图像处理领域的多功能性,并计划后续探... 目录前言一 、OpenCV1.简介2.下载与安装3.目录说明二、在Java项目中使用三 、测试1.测

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

java使用protobuf-maven-plugin的插件编译proto文件详解

《java使用protobuf-maven-plugin的插件编译proto文件详解》:本文主要介绍java使用protobuf-maven-plugin的插件编译proto文件,具有很好的参考价... 目录protobuf文件作为数据传输和存储的协议主要介绍在Java使用maven编译proto文件的插件

Python使用OpenCV实现获取视频时长的小工具

《Python使用OpenCV实现获取视频时长的小工具》在处理视频数据时,获取视频的时长是一项常见且基础的需求,本文将详细介绍如何使用Python和OpenCV获取视频时长,并对每一行代码进行深入解析... 目录一、代码实现二、代码解析1. 导入 OpenCV 库2. 定义获取视频时长的函数3. 打开视频文

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

Python如何将OpenCV摄像头视频流通过浏览器播放

《Python如何将OpenCV摄像头视频流通过浏览器播放》:本文主要介绍Python如何将OpenCV摄像头视频流通过浏览器播放的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完... 目录方法1:使用Flask + MJPEG流实现代码使用方法优点缺点方法2:使用WebSocket传输视

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解

OpenCV实现实时颜色检测的示例

《OpenCV实现实时颜色检测的示例》本文主要介绍了OpenCV实现实时颜色检测的示例,通过HSV色彩空间转换和色调范围判断实现红黄绿蓝颜色检测,包含视频捕捉、区域标记、颜色分析等功能,具有一定的参考... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间