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

相关文章

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

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

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

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

苹果macOS 26 Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色

《苹果macOS26Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色》在整体系统设计方面,macOS26采用了全新的玻璃质感视觉风格,应用于Dock栏、应用图标以及桌面小部件等多个界面... 科技媒体 MACRumors 昨日(6 月 13 日)发布博文,报道称在 macOS 26 Tahoe 中

Macos创建python虚拟环境的详细步骤教学

《Macos创建python虚拟环境的详细步骤教学》在macOS上创建Python虚拟环境主要通过Python内置的venv模块实现,也可使用第三方工具如virtualenv,下面小编来和大家简单聊聊... 目录一、使用 python 内置 venv 模块(推荐)二、使用 virtualenv(兼容旧版 P

Python中OpenCV与Matplotlib的图像操作入门指南

《Python中OpenCV与Matplotlib的图像操作入门指南》:本文主要介绍Python中OpenCV与Matplotlib的图像操作指南,本文通过实例代码给大家介绍的非常详细,对大家的学... 目录一、环境准备二、图像的基本操作1. 图像读取、显示与保存 使用OpenCV操作2. 像素级操作3.

C/C++中OpenCV 矩阵运算的实现

《C/C++中OpenCV矩阵运算的实现》本文主要介绍了C/C++中OpenCV矩阵运算的实现,包括基本算术运算(标量与矩阵)、矩阵乘法、转置、逆矩阵、行列式、迹、范数等操作,感兴趣的可以了解一下... 目录矩阵的创建与初始化创建矩阵访问矩阵元素基本的算术运算 ➕➖✖️➗矩阵与标量运算矩阵与矩阵运算 (逐元

C/C++的OpenCV 进行图像梯度提取的几种实现

《C/C++的OpenCV进行图像梯度提取的几种实现》本文主要介绍了C/C++的OpenCV进行图像梯度提取的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录预www.chinasem.cn备知识1. 图像加载与预处理2. Sobel 算子计算 X 和 Y

C/C++和OpenCV实现调用摄像头

《C/C++和OpenCV实现调用摄像头》本文主要介绍了C/C++和OpenCV实现调用摄像头,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录准备工作1. 打开摄像头2. 读取视频帧3. 显示视频帧4. 释放资源5. 获取和设置摄像头属性

c/c++的opencv图像金字塔缩放实现

《c/c++的opencv图像金字塔缩放实现》本文主要介绍了c/c++的opencv图像金字塔缩放实现,通过对原始图像进行连续的下采样或上采样操作,生成一系列不同分辨率的图像,具有一定的参考价值,感兴... 目录图像金字塔简介图像下采样 (cv::pyrDown)图像上采样 (cv::pyrUp)C++ O

c/c++的opencv实现图片膨胀

《c/c++的opencv实现图片膨胀》图像膨胀是形态学操作,通过结构元素扩张亮区填充孔洞、连接断开部分、加粗物体,OpenCV的cv::dilate函数实现该操作,本文就来介绍一下opencv图片... 目录什么是图像膨胀?结构元素 (KerChina编程nel)OpenCV 中的 cv::dilate() 函