如何在iOS上构建OpenCV

3

我已经使用cmake gui编译了包含contrib模块的openCV 3.1,按照这个链接进行。生成了文件,但如何在我的ios项目中使用它?是否有一种方法可以创建opencv.framework文件,还是只需将整个构建文件夹导入我的XCode项目即可。


为什么你需要这样的东西?你已经有编译好的 opencv.framework 了。 - Ispas Claudiu
我需要模块xfeatures2d和xphoto来跟随一本教科书。 - Rgfvfk Iff
2个回答

5
也许使用命令行比使用CMakeGUI构建带有额外模块的openCV更简单。 当然,必须安装CMake。
在适合您的地方创建一个新文件夹。
>mkdir ~/your_open_cv_dir
>
>cd ~/your_open_cv_dir
>
>git clone https://github.com/opencv/opencv.git

如果您需要额外的模块,请克隆它们的源代码。
>git clone https://github.com/opencv/opencv_contrib.git

你的your_open_cv_dir文件夹中可以包含两个文件夹,opencvopencv_contrib

创建一个符号链接,让Xcode可以找到OpenCV编译脚本所需的编译器、头文件等。

>cd /
>
>sudo ln -s /Applications/Xcode.app/Contents/Developer Developer

构建OpenCV框架:

>cd ~/your_open_cv_dir
>
>python opencv/platforms/ios/build_framework.py ios

如果您需要OpenCV的扩展版本,请使用额外的模块进行构建。
>python opencv/platforms/ios/build_framework.py ios --contrib opencv_contrib

为补充 @Dimitry 的答案,指定加载哪些模块会减少在 Xcode 中遇到的任何错误,并减少构建所需的时间。例如,您可以使用 --without_modulename_ 参数来排除模块。最后,'opencv_contrib' 参数是 opencv_contrib 的相对路径。 - jsibs

1
  1. 在opencv/platforms/ios/ios/opencv2.framework中寻找opencv2.framework(如果您正确地按照cmake说明进行操作,该框架应该已经被构建在那里)。如果您单独构建了opencv_contrib,则该框架将位于opencv/platforms/ios/ios_contrib/opencv2.framework下。
  2. 将opencv2.framework拖入您的Xcode项目中。确保您勾选了“复制项目文件”。
  3. 在“Build Phases”下的“Link Binary with Libraries”中,添加opencv2.framework。这可能会有所帮助。您可以通过在其中一个Objective-C++文件中导入OpenCV头文件并查看Xcode是否能够找到它来检查。如果没有,请按照下一步指示指定头文件搜索路径。
  4. 在您的项目的“Build Settings”中,将$(PROJECT_DIR)添加到“Framework Search Paths”、“Header Search Paths”和“Library Search Paths”中。
  5. 现在,您就可以在Objective-C++代码中导入OpenCV头文件(.hpp文件)了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接