已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1附 5本科毕业设计(论文)翻译班 级姓 名学 号指导教师填表日期2中文译名 在 iOS 上的即时 OpenCV外文原文名 Instant OpenCV for iOS外文原文版出处 Instant OpenCV for iOS Paperback by Kirill Kornyakov(Author), Alexander ShishkovPublished by Packt Publishing Ltd.Livery Place35 Livery StreetBirmingham B3 2PB, UK.ISBN 978-1-78216-384-83译 文:本篇是 iOS 即时 OpenCV 的实用指南,它将向你展示在 iOS 平台之上建立计算机视觉应用的每一个重要的步骤。它将帮助你配置和优化你的 OpenCV 代码,使你的代码更加实用。然后将你的代码包装成一个 GUI 应用程序。本书中每一章都有一个范例项目,每一个范例项目都将会帮助你专注一个方面的技术。从 iOS 开始(简单)在这一章中,我们将提供所有必要的步骤来设置您的环境并且在一个设备中运行“Hello World”应用。在开始的时候为 iOS 平台开发似乎是很困难,因为选项列表有点大。对于那些不熟悉 MAC/iOS 开发,Objective-C 与 Xcode 的读者我们将提供重要的环节。如果你已经熟悉 iOS 开发,你可以跳过这一章。准备就绪苹果公司已经为开发者建立了非常丰富和良好的开发环境,每个组件都高度集成。一旦你熟悉它的基本规律和原则,你将能够在不同类型的项目之间轻松切换。但你可能需要一些时间来熟悉它的工具和框架。iOS 开发的第一个必要条件是 MAC OS X 工作站或笔记本电脑,你不能使用其他操作系统。这里极力推荐使用最新的操作系统和工具的版本,一些新的特征没有回迁到旧版本。目前,最新版本是 MAC OS X 10.8,也称 Mountain Lion。其次,你将会需要一个 iOS 设备来运行这本书中的一些例子,因为 iOS 模拟器不支持支持相机。你也应该知道模拟器执行 x86 原生代码,而真正的 iOS 设备上运行在 ARM。这种差异不会让你明白你的应用程序的实际性能,但它通常是重要的。你可以使用一个简单便宜的装置如 iPod-touch,它的功能不仅仅只是开发!当然,我们建议你找一个最新的 iOS 设备;目前有 iPhone 5 和 iPad 4。iOS 版本应为 6 或更高。当你拥有所有的硬件,你需要安装的 Xcode,一切以 MAC 为基础开发的核心。你将需要 4.6.3 或更高版本。我们建议你将 Xcode 与命令行工具一起安装,这样你就可以从终端使用编译器和其他一些有用的工具。我们差不多准备好开始开发了,如果你打算使用模拟器你可以跟随 How to do 小节做。但是如果你打算现在或以后使用一个真实的设备,有一个额外步骤。为了在实际装置运行您的应用程序,你必须注册成为苹果开发者(免费的) ,你可能还需要订阅 iOS 开发者计划,这将花费你每年 99 美元。这对于你的小应用程序可能看起来花费太高,但这将证明你是认真的,你将为你应用程序做最大的努力。同时,它使您可以访问苹果所有的测试软件,从开发者的角度来看这很重要。注册流程的页面在/register/index.action,关于“IOS Developer Program“的页面在 /programs/ios/ 最后,你将需要在http:/bit.ly/3848_DeviceProvisioning. 的说明注册你的设备。4How to do it。 。 。现在我们准备开始创建我们的第一个应用“Hello World“了,它使用Objective-C编写。要完成我们的目标需要以下步骤。1将你的 iOS 设备连接到你的电脑。2打开 Xcode 并创建一个新项目。3修改代码,将显示 “Hello World”文本。4运行应用程序。让我们实现下述步骤1. 我们从连接你的设备到计算机开始(如果你使用模拟器你可以跳过这一步)。通过使用USB 线,不仅可以让你的设备充电,而且还提供了一些方式控制你的设备。有一些应用程序允许你从连接的设备复制文件(例如,ifunbox),但我们不需要它,因为我们将使用 Xcode 与设备通信。2. 接下来,我们将启动 Xcode。启动时,会显示给你有几个 Xcode 选项的菜单,你应该选择创建一个新的 Xcode 项目选项。然后你需要选择单一视图的应用程序模板来创建 iOS应用。在出现的对话框中,您必须指定产品名称的值,机构名称(你可以用你的名字),和公司的标识。下面的截图显示用于创建一个新项目的选项窗口:3. 我们建议您不选中包括单元测试复选框,因为我们不需要他们了。然后点击“下一步”,选择你的项目文件夹,点击创建,这样你就算完成了创建过程!54. 现在是时候给自动生成的项目添加一些手工制作的代码。你可以看到 Xcode 窗口被分成若干个“区”。下面的截图来自官方的 Xcode 用户指南,描述了 Xcode 的整体布局(http:/bit.ly/3848_Xcode): 5. 打开viewcontroller.M文件。你可以在左边的项目导航栏中找到它。我们要添加一个简单的日志到控制台,同时添加警告窗口。为了做到这一点,请编辑viewDidLoad方法。最终代码应该如下:- (void)viewDidLoadsuper viewDidLoad;/ Console outputNSLog(“Hello, World!“);/ Alert windowUIAlertView *alert = UIAlertView alloc;alert = alert initWithTitle:“Hey there!“ message:“Welcome to OpenCV on iOS development community“ delegate:nilcancelButtonTitle:“Continue“otherButtonTitles:nil;alert show;6. 然后在 Xcode 导航视图打开调试模式。点击位于 Xcode 左上角窗口的运行按钮,你可以看到两个警告窗口,也可以看到在设备的屏幕在调试区的日志消息,仔细地查看他们。这就是你第一次运行的应用程序了!7How it works.NSLog 是我们添加的第一个函数,用于打印记录简单文本信息,类似于 C 语言中的 printf 函数。你也可以看到,我们的字符串在字符之后,字符是用于将字符串隐式转换为NSString 对象。就像 printf,NSLog 允许你以合适的格式打印多个变量的值,所以这个功能对于调试和分析你的应用程序是相当有用的。下一个代码块显示如何使用一些通知创建一个简单的消息窗口。我们不会在以后的章节使用UIAlertView,但这是一个很好的机会熟悉在 Objective-C 中创建对象和调用其方法。第一行显示一个新的对象如何被创建。在这里,被调用的 alloc 方法是 UIAlertView 从它的父类NSObject 类继承而来的。接下来,我们将调用 initWithTitle 方法,传递必要的参数给它。此方法返回一个新初始化的警告窗口。最后,我们调用显示方法显示带有我们的消息的窗口。请注意,为了可读性我们已经重新格式化代码,并且我们创建了一个多余的临时对象。当一个全新的对象调用 initWithTitle 方法,在大多数情况下,您可能会遇到的如下面所示的初始化代码片段。UIAlertView * alert = UIAlertView alloc initWithTitle:“Hey there!“message:“Welcome to OpenCV on iOS development community“ delegate:nilcancelButtonTitle:“Continue“ otherButtonTitles:nil;Theres more.以上就是本章的所有内容,如果你觉得需要更多关于 iOS 开发的入门资料,我们可以提供一些要点。稍后,我们将主要关注、OpenCV 方面的编程,所以,如果你想要更好的理解苹果的工具和框架,你需要花费更多的时间学习一些其他的资源。Xcode我们鼓励你阅读更多关于 Xcode 的资料拓展你的视野。官方相关文档在/xcode/ 例如,你可以创建多个模拟器来测试不同类型的设备的应用程序。导航到 Xcode |偏好,然后去下载|组件来查看可用的选项。在 Xcode 和示例代码的例子中的很多有用的技巧是可以在 iOS 开发者文档库中找到的。/library/ios/navigation/ 8Objective-C关于 Objective-C 你应该知道的一个重要的事情是它是 C 的一个超集,你可以把它与 C混合使用。因为 Opencv 是用 C + +写的,而我们必须使用 Objective-C +,它允许将 C+和 Objective-C 的语法结合使用,也允许你重用你的 C+代码或库(如我们在 OpenCV 做的)。然而,Objective-C 是 iOS 的主要的语言,所以为了有效地使用可用的库和框架你应该熟悉它。从资源中显示一张图片(简单)每一个应用程序可能会拥有一些图像及其资源,如纹理或图标。在这一章中,我们将学习如何将图片添加到资源,并且加载到 UIImage 对象,最后将图片显示在屏幕上。基于这个目标我们将用 UIImageView 组件,同时我们要熟悉重要的模型视图控制器(MVC)设计模式。Getting ready你能在随书提供的代码集中的 Recipe02_DisplayingImage 文件夹下找到这一章的源代码。你也可以使用你自己的图片,只要满足 320*480 像素的条件。你也可以使用所提供的在计算机视觉工程师之间非常著名的图片 lena.png。你也可以使用 iOS 模拟器完成本章内容。How to do it.以下是显示图像需要的步骤:1将一张图片添加到项目的资源列表中。2添加一个 UIImageView 组件到视图中。3添加图像加载代码。4在屏幕上显示图像。让我们执行以下步骤:1在本例子中,您可以使用在之前章节创建的 Xcode 项目。我们从添加一张图片到项目中开始。基于这个目的,你应该在菜单导航栏区使用添加文件菜单。在打开的窗口中,你应选择图像,点击添加按钮。文件名应该出现在 Supporting Files 的导航区域的文件组中。2下一步,我们将添加 UIImageView 控件到我们的视图。基于这个目的,你必须在项目导航区打开你的设备相应的 storyboard 文件。最初,它看起来像一个空白面板。你应该在Xcode 窗口的右下角的对象列表找到 Image View 组件,然后把它拖到视图中。在下面的截图,你可以在 storyboard 编辑器中看到的对象列表:93. 我们现在有视图用于显示图像,但它没有任何的后台代码。为了添加一些逻辑,我们应该首先给我们的控制器添加一个特殊的变量。为了做到这一点,更改 Viewcontroller。h文件中 Viewcontroller 类的接口如下:interface ViewController : UIViewController UIImage* image;property (nonatomic, weak) IBOutlet UIImageView* imageView;end4. 然后我们需要在视图中连接新创建的属性和我们的视觉组件。再次打开 storyboard,通过导航到 View | Assistant Editor | Show Assistant Editor 打开编辑辅助模式。之后,Xcode 的主窗口将被分成两部分。在一边你可以找到 Viewcontroller.H 文件,而storyboard 将在另一边显示。如下面的截图所示,将 ImageView 属性与 UIImageView 组件连接起来:105. 现在是时候添加一些代码到控制器的实现文件。如果你使用你自己的图像,请更改文件名,如下所示代码段:#import “ViewController.h“interface ViewController ()endimplementation ViewControllersynthesize imageView;- (void)viewDidLoadsuper viewDidLoad;/ Read the imageimage = UIImage imageNamed:“lena.png“;if (image != nil)imageView.image = image; / Displaying the image7. 这就完成了,你现在可以点击 Run 按钮运行你的应用程序了How it works.在这一章中我们已经在 iOS 上实现了我们的第一个用户图形界面。现在我们将讨论 GUI开发的一些基本相关概念。最重要的思想是使用模型-视图-控制器设计模式。它将视觉表示,用户交互的逻辑,和核心的应用程序逻辑进行分离。在这个模式中有三个部分:1模型:模型包含业务逻辑,如数据处理的数据和算法。但它不知道此信息最后将如何显示给用户。2视图:试图负责可视化。可以将视图想象成为一些 GUI,在这之上有显示图片数据的控件(例如,按钮,标签,等等)。3控制器:控制器为用户和系统之间的提供了通信渠道。它监视用户的输入然后使用模型和视图实现必要的响应。通常,应用程序有几个视图通过一些规则在它们之间进行切换。同时,简单的程序通常只包含这个模式的两个部分:视图和控制器,因为逻辑很简单,开发者不为模型创建一个单独的实体。一个视图创建后会成为 storyboard 的一个元素。使用 storyboard 作为扩展名的文件允许你描述应用程序的所有内部元素的接口。Xcode 包含一个特殊的图形工具来添加视觉控制和改变它们的参数。所以,所有你需要做的只是将需要用到的 GUI 组件拖出来,放到你的视图中。11当你创建一个新的项目的时候,Xcode 为不同的设备族添加两个storyboards( mainstoryboard_iphone.storyboard 和 mainstoryboard_ipad.storyboard) 。当然,你可以对所有设备单单使用一个 storyboard。基于这个目的,你应该在项目的配置设置中改变Main Storyboard 属性的值。但是平板电脑和智能手机在屏幕分辨率上的区别很大,所以强烈建议为两个族都创建分离且具有不同布局的视图。对于每个视图,你都应该有一个控制器。对于每一个新的项目,Xcode 默认情况下创建一个 Viewcontroller 类(Viewcontroller.h 和 Viewcontroller.m 文件) 。在我们的例子中,我们首先视图的接口声明中添加 IBOutlet 属性。IBOutlet 是一种特殊的宏,它表示一个变量可以被连接到一些在视图上的显示组件。IBOutlet 没有解决任何问题,但是它使 Xcode 将变量与UI 元素清楚地连在了一起。在我们的实现中,我们使用了property 关键字。默认情况下,如果我们给控制器的接口添加一些变量(以及任何其他接口) ,它将是私有的,所以我们不能类的外部访问它。如果我们想访问它,我们可以使用property 关键字。它作为一个实例变量被添加到类中,但它需要你实现 getter 和 setter 方法。在我们的例子中,我们通过调用另一个特殊的synthesize 关键字来实现。它将为变量自动生成 getter 和 setter 方法。在这一章中,我们给 ViewController 类中的 viewDidLoad 方法添加了一些代码。该方法是让我们显示我们的图片很好的地方,因为它将在 ViewController 被加载之后被调用。你可能已经注意到,这种方
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年城市基础设施建设项目特许经营协议
- 2024年度企业咨询服务合同
- 公司货款个人担保协议书(2篇)
- 2024办公设备代理销售合同
- 城市地铁枢纽用地租赁协议2024
- 2024年度股权激励协议
- 2024年快餐外卖配送业务协议
- 2024年度云计算平台安全合同-PKISSL技术实施与维护
- 2024年度技术咨询合同咨询范围与咨询费用
- 2024年建筑消防设施全包维护合同
- 《领导梯队:全面打造领导力驱动型公司》解读
- 护理质量安全与风险管理的案例分析
- 工程流体力学课后习题答案-(杜广生)
- AI智能客服应用实践
- 《止吐药临床应用》课件
- 幕墙工程检验批质量验收记录
- 危险化学品经营企业安全生产奖惩制度范本
- 报价单模板完
- 30题药品质量检测岗位常见面试问题含HR问题考察点及参考回答
- 《婴幼儿行为观察、记录与评价》期末试卷及答案 卷3
- 企业战略管理概述
评论
0/150
提交评论