很久没有写过关于iPhone的Blog了,这两天Prestudy Lua & OpenCV在iPhone上的应用,就当做个笔记吧。因为Lua很简单,大家直接看这个帖子就可以了:http://www.grzmobile.com/blog/2009/11/13/integrating-lua-into-an-iphone-app.html 没有什么需要特别关注的,很容易就集成成功了。
OpenCV这个有些复杂,大家先仔细看一下下面这个Blog: http://niw.at/articles/2009/03/14/using-opencv-on-iphone/en 但是大家可以按照下面我的步骤进行,因为其中有些地方它写的有些小问题。我先写一下我的开发平台:
硬件:MacBook (2008年买的)这个很重要,因为我的机器装Snow Leopard不能支持64bit,只是32bit的
软件:Snow Leopard 10.6.6
XCode 3.2.5 + SDK4.2
下面这个软件请大家自行下载:
CMake 2.8.4,我推荐大家到这个网站http://www.cmake.org/cmake/resources/software.html下载,请不要使用sudo port install cmake,因为这样会装2.6.x版本的,可能会影响你的编译。
接下来的步骤大家可以按照我写的一步步进行:
[1] git clone git://github.com/niw/iphone_opencv_test.git,如果网速太慢,可以直接去https://github.com/niw/iphone_opencv_test下载一个最新版本的zip包。
[2] 进入iphone_opencv_test目录(就是git或者下载zip包解压的目录)。然后下载OpenCV-2.1.0。然后把下载下来的OpenCV-2.1.0在iphone_opencv_test目录里面解压,命令是:tar jvxf opencv-2.1.0.tar.bz2。
[3] 进入OpenCV-2.1.0目录,运行patch -p1 < ../OpenCV-2.1.0.patch。这个命令其实就是修改OpenCV的Makefile使其支持iPhone。
[4] 下面就是准备编译simulator版本了
% cd .. # 回到iphone_opencv_test目录
% mkdir build_simulator 不要用别的名字,等下好编译例子文件
% cd build_simulator
% export SDK_VERSION=4.2
% export IPHONEOS_VERSION_MIN=3.0
%export CMAKE_OSX_ARCHITECTURES=i386
% ../opencv_cmake.sh Simulator ../OpenCV-2.1.0
% make -j 4
% make install
注意上面三个export命令,前两个很明显。因为我希望我的OpenCV最低可以支持iOS3.0,注意第三个export,这个命令是告诉cmake我的simulator的架构是i386(这很明显嘛,我的simulator是跑在MacBook的CPU上面的)。
[5] 下面是编译Device版本了。
% cd .. # 回到iphone_opencv_test目录
% mkdir build_device #不要用别的名字,等下好编译例子文件
% cd build_device
% export SDK_VERSION=4.2
% export IPHONEOS_VERSION_MIN=3.0
%export CMAKE_OSX_ARCHITECTURES=armv6
% ../opencv_cmake.sh Device ../OpenCV-2.1.0
% make -j 4
% make install
[6] 打开iphone_opencv_test的测试project文件,然后在simulator和device上都测试一下。应该可以看到结果的。
[7] 如果我们自己新建一个项目,如何加入已经编译好的opencv库呢?我的做法是:
(a) 新建一个iPhone项目,假设项目目录是:~/opencvtest
(b) 在~/opencvtest目录下面新建下面目录结构:
~/opencv/lib/OpenCV/Simulator
~/opencv/lib/OpenCV/Device
然后把iphone_opencv_test里面opencv_device/和opencv_simulator的include,lib目录拷贝到对应的Device和Simulator目录下面。
(c) 最关键的来了。大家知道要能编译过,我们需要添加头文件include目录和库的支持。大家也注意到Simulator和Device目录里面的东西是同名的,而且支持的一个是simulator,一个是device。于是我用一个策略。Simulator选择debug,Device选择Release。然后大家可以在对应的头文件支持和库文件支持。
头文件:Header Search Path: $(SRCROOT)/lib/OpenCV/Simulator/include/opencv/ 和 $(SRCROOT)/lib/OpenCV/Simulator/include/
库文件:-lstdc++
-lz
$(SRCROOT)/lib/OpenCV/Simulator/lib/libcxcore.a
$(SRCROOT)/lib/OpenCV/Simulator/lib/libcv.a
大家对应填Simulator 和 Device。
(d) 如果你需要编译simulator版本,请加上Accerlator.Framework的支持。这个Framework就是加速你的向量计算的。不过因为iOS 3.0没有这个Framework,所以如果你要在iOS 3.x的真机上实验的话,请删除这个库。
OpenCV For iPhone的一些问题
速度。这个有一些朋友提到过,还是比较慢的。原因有一下几个:
(1) OpenCV没有为arm体系结构做过优化;
(2) iPhone特别是老版本的iPhone,CPU还是没有强劲到这等地步的。
分享到:
相关推荐
5. **实时摄像头输入**:在iPhone上使用OpenCV,开发者可以接入摄像头作为实时图像数据来源,通过捕获每一帧图像进行处理。这通常涉及到AVFoundation框架的使用,以获取视频流并结合OpenCV进行图像处理。 6. **性能...
《OpenCV在iPhone上的应用实例解析》 OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,它包含了众多图像处理和计算机视觉的算法,广泛应用于图像识别、人脸识别、图像分割、物体检测等...
在iOS平台上,使用Xcode开发应用程序是常见的做法,而OpenCV是一个强大的计算机视觉库,它在图像处理、模式识别和机器学习等领域有着广泛的应用。本教程将深入探讨如何在Xcode中集成OpenCV来开发针对iPhone的应用...
(实时人脸检测可以在 iPhone 5 上流畅运行) - 提供了 Unity 的 Texture2D 和 OpenCV 的 Mat 相互转换的方法。 - IDisposable 已在许多类中实现。您可以使用 "using"语句管理资源。 - 提供了与其他发布者资源...
在iOS平台上配置OpenCV库可能对开发者来说是一个挑战,但一旦成功,它将极大地扩展iPhone应用的计算机视觉功能。OpenCV(开源计算机视觉库)是一个强大的工具,用于图像处理、特征检测、对象识别等任务。以下是你...
通过研究和实践OpenCV-iPhone项目,开发者不仅可以掌握OpenCV的基本用法,还能深入了解iOS应用开发流程,提升在移动平台上的计算机视觉应用开发能力。这将为开发出更多创新和实用的iOS应用奠定坚实基础。
适用于 Unity 云版本 ... (实时人脸检测可以在 iPhone 5 上流畅运行) - 提供了 Unity 的 Texture2D 和 OpenCV 的 Mat 相互转换的方法。 - IDisposable 已在许多类中实现。您可以使用 "using"语句管理资源。
在iOS平台上,OpenCV库的使用可以让开发者在iPhone、iPad等设备上实现复杂的图像分析和处理功能,如人脸识别、图像识别、物体追踪等。 针对"OpenCV lib for iOS part1"这个主题,我们首先会关注如何在iOS项目中集成...
在iOS上使用OpenCV时,我们需要先通过CocoaPods或Carthage这样的依赖管理工具将其集成到项目中,或者手动添加库文件。 接下来,源码可能包含了以下部分: 1. `ViewController.swift` 或 `ViewController.m`: 这是...
(实时人脸检测可以在 iPhone 5 上流畅运行) - 提供了 Unity 的 Texture2D 和 OpenCV 的 Mat 相互转换的方法。 - IDisposable 已在许多类中实现。您可以使用 "using"语句管理资源。 - 提供了与其他发布者资源...
(real-time face detection works smoothly on iPhone 5) - Provides a method to interconversion of Unity's Texture2D and OpenCV's Mat. - IDisposable is implemented in many classes.You can manage the ...
本项目标题"IOS应用源码之【类库与框架】-Using OpenCV on iPhone"揭示了我们将深入探讨如何在iOS平台上集成并使用OpenCV进行图像处理和分析。 描述中提到的"适用于 OpenCV 2.1.0_iOS SDK 3.x_4.x"表明这是一个较早...
(real-time face detection works smoothly on iPhone 5) - Provides a method to interconversion of Unity's Texture2D and OpenCV's Mat. - IDisposable is implemented in many classes.You can manage the ...
本篇文章将深入探讨如何在iOS上运用OpenCV,并通过`iphone_opencv_test-master`示例项目进行实战解析。 首先,OpenCV for iOS 的集成通常有以下几种方式: 1. **CocoaPods**:使用CocoaPods是管理第三方库的常见...
(实时人脸检测可以在 iPhone 5 上流畅运行) - 提供了 Unity 的 Texture2D 和 OpenCV 的 Mat 相互转换的方法。 - IDisposable 已在许多类中实现。您可以使用 "using"语句管理资源。 - 提供了与其他发布者资源...
2.iPhone或iPad上基于标记的增强现实技术。3.无标记增强现实。4.使用OpenCV从Motion探索结构。5.基于SVM和神经网络的车牌识别。6.非刚性人脸跟踪。7.使用AAM和POSIT进行3D头部姿态估计。8.使用特征脸或Fisherfaces...
这个配套案例是一个实际的应用示例,已在iPhone 5上成功运行,展示了OpenCV的强大功能。 首先,OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,它包含了大量的预训练模型...
在iOS应用中,这可能涉及到捕获实时视频流,然后在每一帧上运行OpenCV算法。为了实现这一点,开发者会利用AVFoundation框架来获取摄像头输入,然后将其传递给OpenCV进行处理。 此外,为了提供用户友好的界面,项目...
在“simple-iphone-image-processing”这个项目中,我们可以看到如何将OpenCV与Objective-C或Swift语言结合使用。开发者通常会创建一个C++接口,使得OpenCV的功能可以被Objective-C或Swift调用。这涉及到设置预...
OpenCV提供了Accelerate框架和Metal Performance Shaders(MPS)的接口,可以在GPU上执行图像处理任务,从而提高处理速度,尤其在处理大型图像时。 总的来说,“simple-iphone-image-processing”项目提供了一个...