`

如何在iPhone上使用OpenCV

阅读更多

很久没有写过关于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还是没有强劲到这等地步的。

 

 

 

 

 

分享到:
评论

相关推荐

    IOS源码之【类库】Using OpenCV on iPhone(适用OpenCV 2.1.0_iOS SDK 3.x_4.x)

    5. **实时摄像头输入**:在iPhone上使用OpenCV,开发者可以接入摄像头作为实时图像数据来源,通过捕获每一帧图像进行处理。这通常涉及到AVFoundation框架的使用,以获取视频流并结合OpenCV进行图像处理。 6. **性能...

    niw-iphone_opencv_test-a2e6c08db6c8af0d059f972a29_iphone_iphone

    《OpenCV在iPhone上的应用实例解析》 OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,它包含了众多图像处理和计算机视觉的算法,广泛应用于图像识别、人脸识别、图像分割、物体检测等...

    xcode中应用opencv开发iphone的应用程序

    在iOS平台上,使用Xcode开发应用程序是常见的做法,而OpenCV是一个强大的计算机视觉库,它在图像处理、模式识别和机器学习等领域有着广泛的应用。本教程将深入探讨如何在Xcode中集成OpenCV来开发针对iPhone的应用...

    OpenCV for Unity 2.5.8

    (实时人脸检测可以在 iPhone 5 上流畅运行) - 提供了 Unity 的 Texture2D 和 OpenCV 的 Mat 相互转换的方法。 - IDisposable 已在许多类中实现。您可以使用 "using"语句管理资源。 - 提供了与其他发布者资源...

    iOS配置OpenCV库

    在iOS平台上配置OpenCV库可能对开发者来说是一个挑战,但一旦成功,它将极大地扩展iPhone应用的计算机视觉功能。OpenCV(开源计算机视觉库)是一个强大的工具,用于图像处理、特征检测、对象识别等任务。以下是你...

    IOS应用源码——OpenCV-iPhone(Xcode project_04.07.2010).zip

    通过研究和实践OpenCV-iPhone项目,开发者不仅可以掌握OpenCV的基本用法,还能深入了解iOS应用开发流程,提升在移动平台上的计算机视觉应用开发能力。这将为开发出更多创新和实用的iOS应用奠定坚实基础。

    最新 OpenCV for Unity 2.5.7 - unity 人脸识别插件

    适用于 Unity 云版本 ... (实时人脸检测可以在 iPhone 5 上流畅运行) - 提供了 Unity 的 Texture2D 和 OpenCV 的 Mat 相互转换的方法。 - IDisposable 已在许多类中实现。您可以使用 "using"语句管理资源。

    OpenCV lib for iOS part1

    在iOS平台上,OpenCV库的使用可以让开发者在iPhone、iPad等设备上实现复杂的图像分析和处理功能,如人脸识别、图像识别、物体追踪等。 针对"OpenCV lib for iOS part1"这个主题,我们首先会关注如何在iOS项目中集成...

    IOS应用源码——niw-iphone_opencv_test-4ab0572.zip

    在iOS上使用OpenCV时,我们需要先通过CocoaPods或Carthage这样的依赖管理工具将其集成到项目中,或者手动添加库文件。 接下来,源码可能包含了以下部分: 1. `ViewController.swift` 或 `ViewController.m`: 这是...

    OpenCV for Unity 2.6.0

    (实时人脸检测可以在 iPhone 5 上流畅运行) - 提供了 Unity 的 Texture2D 和 OpenCV 的 Mat 相互转换的方法。 - IDisposable 已在许多类中实现。您可以使用 "using"语句管理资源。 - 提供了与其他发布者资源...

    OpenCV for Unity 2.3.4

    (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应用源码之【类库与框架】-Using OpenCV on iPhone"揭示了我们将深入探讨如何在iOS平台上集成并使用OpenCV进行图像处理和分析。 描述中提到的"适用于 OpenCV 2.1.0_iOS SDK 3.x_4.x"表明这是一个较早...

    OpenCV for Unity 2.3.2

    (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 ...

    opencv for iOS 示例

    本篇文章将深入探讨如何在iOS上运用OpenCV,并通过`iphone_opencv_test-master`示例项目进行实战解析。 首先,OpenCV for iOS 的集成通常有以下几种方式: 1. **CocoaPods**:使用CocoaPods是管理第三方库的常见...

    OpenCV for Unity 2.4.7

    (实时人脸检测可以在 iPhone 5 上流畅运行) - 提供了 Unity 的 Texture2D 和 OpenCV 的 Mat 相互转换的方法。 - IDisposable 已在许多类中实现。您可以使用 "using"语句管理资源。 - 提供了与其他发布者资源...

    opencv小项目练习,一共九个

    2.iPhone或iPad上基于标记的增强现实技术。3.无标记增强现实。4.使用OpenCV从Motion探索结构。5.基于SVM和神经网络的车牌识别。6.非刚性人脸跟踪。7.使用AAM和POSIT进行3D头部姿态估计。8.使用特征脸或Fisherfaces...

    IOS7下用openCV实现人脸检测加识别demo

    这个配套案例是一个实际的应用示例,已在iPhone 5上成功运行,展示了OpenCV的强大功能。 首先,OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,它包含了大量的预训练模型...

    IOS应用源码之【应用】simple-iphone-image-processing(OpenCV).rar

    在iOS应用中,这可能涉及到捕获实时视频流,然后在每一帧上运行OpenCV算法。为了实现这一点,开发者会利用AVFoundation框架来获取摄像头输入,然后将其传递给OpenCV进行处理。 此外,为了提供用户友好的界面,项目...

    IOS应用源码之【应用】-simple-iphone-image-processing(OpenCV).rar

    在“simple-iphone-image-processing”这个项目中,我们可以看到如何将OpenCV与Objective-C或Swift语言结合使用。开发者通常会创建一个C++接口,使得OpenCV的功能可以被Objective-C或Swift调用。这涉及到设置预...

    IOS应用源码之【应用】-simple-iphone-image-processing(OpenCV).zip

    OpenCV提供了Accelerate框架和Metal Performance Shaders(MPS)的接口,可以在GPU上执行图像处理任务,从而提高处理速度,尤其在处理大型图像时。 总的来说,“simple-iphone-image-processing”项目提供了一个...

Global site tag (gtag.js) - Google Analytics