ios - Opencv自定义编译

标签 ios opencv

我正在尝试减少 ios 的 opencv2.framework 大小。我的项目只使用 core、imgproc 和 highgui 模块。我怎样才能只用那些模块进行编译?或者是否有减小尺寸的替代方案?

谢谢。

最佳答案

我现在在 3.1 版中遇到了这个问题,nebuto 的答案很接近,但目前还不完整。以下通过更新 build_framework.py 文件能够产生预期的结果。

def getCMakeArgs(self, arch, target):
    args = [
        "cmake",
        "-GXcode",
        "-DBUILD_SHARED_LIBS=OFF",
        "-DBUILD_opencv_core=ON",
        "-DBUILD_opencv_imgcodecs=OFF",
        "-DBUILD_opencv_imgproc=ON",
        "-DBUILD_opencv_world=OFF",
        "-DBUILD_opencv_gpu=OFF",
        "-DBUILD_opencv_calib3d=OFF",
        "-DBUILD_opencv_contrib=OFF",
        "-DBUILD_opencv_features2D=OFF",
        "-DBUILD_opencv_flann=OFF",
        "-DBUILD_opencv_highgui=ON",
        "-DBUILD_opencv_legacy=OFF",
        "-DBUILD_opencv_ml=OFF",
        "-DBUILD_opencv_nonfree=OFF",
        "-DBUILD_opencv_objdetect=OFF",
        "-DBUILD_opencv_photo=OFF",
        "-DBUILD_opencv_stitching=OFF",
        "-DBUILD_opencv_video=OFF",
        "-DBUILD_opencv_videoio=OFF",
        "-DBUILD_opencv_videostab=OFF",
        "-DAPPLE_FRAMEWORK=ON",
        "-DCMAKE_INSTALL_PREFIX=install",
        "-DCMAKE_BUILD_TYPE=Release",
    ]
    return args

此更新还包括两个新模块,它们似乎在 2.4.6 中不存在。

为了节省一些额外费用,您可以删除位于文件底部的模拟器构建的 i386 设置。如果您的应用是 iOS 9 及更高版本,并且您希望省略 32 位设备,您也可以去掉 armv7 选项。

b = Builder(args.opencv, args.contrib,
    [
        ("armv7", "iPhoneOS"),
        ("armv7s", "iPhoneOS"),
        ("arm64", "iPhoneOS"),
        #("i386", "iPhoneSimulator"),
        ("x86_64", "iPhoneSimulator"),
    ])
b.build(args.out)

关于ios - Opencv自定义编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15758660/

相关文章:

ios - 最新的 xcode 6.3 更新给了我一个警告

ios - 如何从 UIBezierPath 创建 IBDesignable 自定义 UIView?

python - Python-OpenCv相机校准-将 map 矩阵保存到文件并读回

c++ - 从 Opencv 捕获网络摄像头视频

java - OpenCV 错误 : Assertion failed (src. dims == 2 && info.height == (uint32_t)

objective-c - 如何在NSMutableArray中存储和检索数组

ios - 优化 SpriteKit

node.js - 错误 : "pre" versions of node cannot be installed, 请改用 --nodedir 标志

iphone - Iphone 上的实时面部跟踪

ios - 为什么标签栏的 selectedImage 没有正确显示?