如何在 iOS 项目中减小 openCV 框架大小

Posted

技术标签:

【中文标题】如何在 iOS 项目中减小 openCV 框架大小【英文标题】:How to reduce the openCV framework size in iOS project 【发布时间】:2021-10-23 17:47:32 【问题描述】:

我按照this 方法将opencv 4.5.3 集成到ios 项目中。但 openCV 框架的大小约为 496 MB。它肯定会增加我的应用程序大小。我只使用了 openCV 中的以下方法。 UIImageToMat MatToUIImage cv::Mat cv::Vec4

我也使用了以下模块。

#import <opencv2/opencv.hpp>
#import <opencv2/imgcodecs/ios.h>
#import <opencv2/core/types_c.h>
#import <opencv2/Mat.h>

那么,如何瘦身openCV?

【问题讨论】:

查看此链接 :) timpoulsen.com/2019/using-opencv-in-an-ios-app.html 我的问题是如何减小 opencv 框架的大小。我知道如何在 Xcode 中设置 openCV。 @Shamshirsaz.Navid 你得到了最终的导出来查看最终的输出大小吗?我知道这与 iOS 无关,但我知道 android 结合 OpenCV 的大小可以减少到 8 MB(取决于选择的 CPU 架构) 你是对的。 @Shamshirsaz.Navid 。 iOS 应用程序不采用 openCV 或任何框架的完整大小。我明白了 【参考方案1】:

你引用的opencv.framework是500M,这个项目的体积会增加500M,但是归档APP体积不会500M,因为你只使用了一些符号,其他的都是XCode优化的。如果你对本卷有顾虑,建议从官网下载完整的opencv工程,根据需要重新编译。 你只需要'核心。核心功能'和'imgcodecs。图片文件读写”。

【讨论】:

打开opencv,下载源码。使用 cmake 构建框架或静态库并更改 ccmake。 您能详细说明一下过程吗?我下载了源代码,但未能集成到 XCode (Swift) 中。 当我在我的项目中添加 .dylib 文件时,我得到了这个错误 building for iOS, but linking in dylib file (Libraries/OpenCV/Lib/libopencv_core.4.5.3.dylib) built for macOS,架构 arm64 的文件 'Libraries/OpenCV/Lib/libopencv_core.4.5.3.dylib' 谢谢@Hao_Liang。最后我意识到任何应用程序都不会占用完整大小的框架。而且我不知道为什么有些人来这里(***)只是为了给负面声誉。是不清楚的问题还是重复的问题?不知道framework/Xcode的内部机制是我的错。 你使用默认的cmake为MacOS平台生成动态库,你应该使用“python ../platforms/ios/build_framework.py builddir”。这可以为 iOS 平台构建 .a 和 .framework。默认情况下,这个静态库很大,你可以在“platforms/ios/build_framework.py”中编辑“arch”。

以上是关于如何在 iOS 项目中减小 openCV 框架大小的主要内容,如果未能解决你的问题,请参考以下文章

如何减小 iOS 视图分页范围的大小?

如何在swift ios中减小图像的大小[重复]

如何减小 React Native iOS 应用程序的大小?

减小与 opencv 静态链接的可执行文件的大小

在 iOS 中找不到 opencv 框架

iOS:如何减小启动画面的图像大小