【问题标题】:How to reduce the openCV framework size in iOS project如何在 iOS 项目中减小 openCV 框架大小
【发布时间】: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?

【问题讨论】:

  • 我的问题是如何减小 opencv 框架的大小。我知道如何在 Xcode 中设置 openCV。 @Shamshirsaz.Navid
  • 你得到了最终的导出来查看最终的输出大小吗?我知道这与 iOS 无关,但我知道 Android 结合 OpenCV 的大小可以减少到 8 MB(取决于选择的 CPU 架构)
  • 你是对的。 @Shamshirsaz.Navid 。 iOS 应用程序不采用 openCV 或任何框架的完整大小。我明白了

标签: ios swift objective-c 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。最后我意识到任何应用程序都不会占用完整大小的框架。而且我不知道为什么有些人来这里(Stackoverflow)只是为了给负面声誉。是不清楚的问题还是重复的问题?不知道framework/Xcode的内部机制是我的错。
  • 你使用默认的cmake为MacOS平台生成动态库,你应该使用“python ../platforms/ios/build_framework.py builddir”。这可以为 iOS 平台构建 .a 和 .framework。默认情况下,这个静态库很大,你可以在“platforms/ios/build_framework.py”中编辑“arch”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-11
  • 2012-03-26
  • 1970-01-01
相关资源
最近更新 更多