栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

macOS下编译opencv-4.5.2+opencv

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

macOS下编译opencv-4.5.2+opencv

文章目录
  • 前言
  • 一、编译环境和工具
    • 1.系统环境和版本
    • 2.工具
    • 3.OpenCV版本
  • 二、编译步骤
    • 1.准备工作目录
    • 2.修改编译脚本
    • 3.开始编译
  • 遇到的问题
    • 尝试1:
    • 尝试2:
    • 尝试3:


前言

本博主前后编译了OpenCV的各种版本,感兴趣的可以浏览之前的博文。此篇为iOS编译opencv-framework,官网发布的opencv-4.x-ios-framework.zip不包括opencv_contrib模块,如果不需要里面的功能,则可以直接使用官方版。

说明:本文使用的系统和软件版本以及工作目录都是本博真实环境,仅供参考。


一、编译环境和工具 1.系统环境和版本

macOS:

Xcode:

2.工具

Homebrew:

CMake:

如果没有cmake:

brew install cmake
3.OpenCV版本

opencv-4.5.2
opencv_contrib-4.5.2

二、编译步骤 1.准备工作目录

2.修改编译脚本

脚本位置:
Workspace/opencv-4.5.2/platforms/ios/build_framework.py

一共需要修改三处,分别位于47行、491行、496行:

...
self.contrib = None
...
folder = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), "../.."))
...
parser.add_argument('--contrib', metavar='DIR', default=None, help='folder with opencv_contrib repository (default is "None" - build only main framework)')
...

改为

...
self.contrib = os.path.abspath(contrib)
...
folder = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), "../.."))
folder2 = os.path.join(os.path.join(os.path.dirname(folder), "opencv_contrib-4.5.2"))
...
parser.add_argument('--contrib', metavar='DIR', default=folder2, help='folder with opencv_contrib repository (default is "None" - build only main framework)')
...

简单说就是配置opencv_contrib的位置,根据自己的目录修改。

3.开始编译
cd Workspace
python opencv-4.5.2/platforms/ios/build_framework.py ios

按照官方的说法,执行上述这一行命令后,就会编译成功,在Workspace目录下会出现ios目录,里面包含着各种arm平台的framework包。
然而,经验告诉本博主,世上没有一次就编译通过的工程。。。


遇到的问题

首先,命令

python opencv-4.5.2/platforms/ios/build_framework.py ios

以及之前的所有准备工作都是OK的,问题是当前macOS版本已经不再支持python2,无法执行python命令,似乎所有新版macOS都不再支持python2。

尝试1:
python3 opencv-4.5.2/platforms/ios/build_framework.py ios

得到了错误:

returned non-zero exit status 65

这个错误可以在GitHub上找到很多,以及各种解决办法。

尝试2:

sudo ln -s /usr/bin/python3 /usr/bin/python

根据各位大神提供的解决方案,最多的是为python3建立软连接。但是,目录/usr/bin/是没有权限建立软连接的,如果在/usr/local/bin/python3就解决了。

尝试3:
python3 -m venv .venv
source .venv/bin/activate
python opencv-4.5.2/platforms/ios/build_framework.py ios

Bingo…
一定要能执行python而不是python3,尝试多次,对本博主的各种环境而言,最简单有效的就是建立虚拟环境,在虚拟环境中执行此命令。
另外,就不要尝试在macOS中安装python2了,过去的就让它过去吧。。。
编译后得到如下目录内容:



整个编译过程确实比编译OpenCV4Android要简单很多。。。

参考链接:https://blog.csdn.net/GikkiAres/article/details/84338358

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1029703.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号