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如何决定java环境

《一篇文章彻底搞懂macOS如何决定java环境》MacOS作为一个功能强大的操作系统,为开发者提供了丰富的开发工具和框架,下面:本文主要介绍macOS如何决定java环境的相关资料,文中通过代码... 目录方法一:使用 which命令方法二:使用 Java_home工具(Apple 官方推荐)那问题来了,

macOS彻底卸载Python的超完整指南(推荐!)

《macOS彻底卸载Python的超完整指南(推荐!)》随着python解释器的不断更新升级和项目开发需要,有时候会需要升级或者降级系统中的python的版本,系统中留存的Pytho版本如果没有卸载干... 目录MACOS 彻底卸载 python 的完整指南重要警告卸载前检查卸载方法(按安装方式)1. 卸载

java 恺撒加密/解密实现原理(附带源码)

《java恺撒加密/解密实现原理(附带源码)》本文介绍Java实现恺撒加密与解密,通过固定位移量对字母进行循环替换,保留大小写及非字母字符,由于其实现简单、易于理解,恺撒加密常被用作学习加密算法的入... 目录Java 恺撒加密/解密实现1. 项目背景与介绍2. 相关知识2.1 恺撒加密算法原理2.2 Ja

Nginx屏蔽服务器名称与版本信息方式(源码级修改)

《Nginx屏蔽服务器名称与版本信息方式(源码级修改)》本文详解如何通过源码修改Nginx1.25.4,移除Server响应头中的服务类型和版本信息,以增强安全性,需重新配置、编译、安装,升级时需重复... 目录一、背景与目的二、适用版本三、操作步骤修改源码文件四、后续操作提示五、注意事项六、总结一、背景与

Android实现图片浏览功能的示例详解(附带源码)

《Android实现图片浏览功能的示例详解(附带源码)》在许多应用中,都需要展示图片并支持用户进行浏览,本文主要为大家介绍了如何通过Android实现图片浏览功能,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

修复已被利用的高危漏洞! macOS Sequoia 15.6.1发布

《修复已被利用的高危漏洞!macOSSequoia15.6.1发布》苹果公司于今日发布了macOSSequoia15.6.1更新,这是去年9月推出的macOSSequoia操作... MACOS Sequoia 15.6.1 正式发布!此次更新修复了一个已被黑客利用的严重安全漏洞,并解决了部分中文用户反馈的

在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)一些基本