前言:

开发IOS7已经有一月的时间了。近期在准备推研的事,有点想往CV方向发展。于是開始自学openCV。

关注CSDN已经非常久了。也从非常多博主那学到了非常多知识,于是我也从这周开启自己的blog之旅,从零開始学openCV,从零開始做笔记写blog。哈哈~

好了。废话不多说。进入正题。

IOS7下使用openCV

Mac OS下要使用openCV当然要编译,可是假设仅仅是在ios下使用openCV的话,仅仅须要将bulid好的opencv2.framework导入到project中就可以。

opencv2.framework在openCV官网上下载就可以。传送门:opencv2.framework

以下我们在Xcode下新建一个Single View Appliction,命名为CvForIOS。

将下载好的opencv2.framework复制到新建好的project文件夹下,然后导入到project文件夹下Frameworks中,还有IOS7.1下的libc++.dylib也要导入。

然后须要在Build Settings中,将“C++ Standard Library”设置成libstdc++。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2hhd25faHQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" width="614" height="116" alt="">

由于opencv中的MIN宏和UIKit的MIN宏有冲突。所以须要在.pch文件里,先定义opencv的头文件。否则会有编译错误。

找到CvForIOS-Preix.pch改动例如以下:


至此,前期的配置工作已经完毕。


第一个案例:用openCV对手机上的照片进行方框滤波

因为IOS一般都是用UIImage类型来存储显示图像,要用openCV对图像进行操作,就必需要能让cv::mat与UIImage之间自由转换。

在这里我们使用github上的开源码。传送门:aptogo

代码例如以下:

注意:.mm文件是说明在这个文件里混合使用了Object-C和C++两种编程语言,因为openCV使用的是C++,所以要注意仅仅要使用了openCV的文件就必须改后缀名为.mm

好了,接下来我们最终能够进入正题,首先在main.storyboard上加入一个button,一个UIImageView控件,一个UISlider。布局例如以下:

各控件的消息响应和连接例如以下:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2hhd25faHQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" align="left" width="256" height="292" alt="">



将视图控制器实现文件的后缀名改为.mm。让viewController实现UIImagePickerControllerDelegate和UIActionSheetDelegate协议

详细实现代码例如以下:

头文件:


实现文件:

调用cv::boxFilter实现方框滤波,通过滑动条就可以调整窗体的大小。终于效果例如以下:


doge经过方框滤波后还是那么带感,朦胧的眼神,哈哈!

总算是把准备工作做好了,接下来就能够用openCV在手机上玩耍了~

以后会在IOS7上用openCV实现很多其它更有意思的功能。最后整个案例的代码附上:cvForIOS

(转载请注明作者和出处:Shawn-HT  http://blog.csdn.net/shawn_ht 未经同意请勿用于商业用途)

參考文章:http://blog.devtang.com/blog/2012/10/27/use-opencv-in-ios/

【从零学习openCV】IOS7下的openCV开发起步(Xcode5.1.1&openCV2.49)的更多相关文章

  1. [OpenCV][ARM9下移植OpenCV]

    [OpenCV][ARM9下移植OpenCV]   安装环境 宿主机: Red Hat Enterprise Linux Server 6.3 开发板: mini2440 相关软件: cmake-3. ...

  2. Android学习笔记01-Mac下搭建Java开发环境

    一 安装JDK 下载 mac 下专用的jdk1.7, 下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downlo ...

  3. Ubuntu下Node.js开发起步之旅

    因为忙其它的事,把Node.js的学习放下了快两个月了,世事变化还真快,发现很多东东都改变了,express已经升级到4.x了,变化还不小! 我原来的学习过程是在VirtualBox中安装Ubuntu ...

  4. 【从零学习openCV】IOS7下的人脸检測

    前言: 人脸检測与识别一直是计算机视觉领域一大热门研究方向,并且也从安全监控等工业级的应用扩展到了手机移动端的app,总之随着人脸识别技术获得突破,其应用前景和市场价值都是不可估量的,眼下在学习ope ...

  5. 【从零学习openCV】IOS7根据人脸检测

    前言: 人脸检測与识别一直是计算机视觉领域一大热门研究方向,并且也从安全监控等工业级的应用扩展到了手机移动端的app.总之随着人脸识别技术获得突破,其应用前景和市场价值都是不可估量的,眼下在学习ope ...

  6. 【从零学习openCV】IOS7人脸识别实战

    前言 接着上篇<IOS7下的人脸检測>,我们顺藤摸瓜的学习怎样在IOS7下用openCV的进行人脸识别,实际上非常easy,因为人脸检測部分已经完毕,剩下的无非调用openCV的方法对採集 ...

  7. [学习OpenCV攻略][017][ARM9下移植OpenCV]

    安装环境 宿主机: Red Hat Enterprise Linux Server 6.3 开发板: mini2440 相关软件: cmake-3.5.1.tar.gz.OpenCV-2.3.1a.t ...

  8. [学习OpenCV攻略][016][RedHat下安装OpenCV]

    安装环境 操作系统: Red Hat Enterprise Linux Server 6.3 相关软件: ffmpeg-0.8.15.tar.bz2.cmake-3.5.1.tar.gz.OpenCV ...

  9. Mac-OSX的Python3.5虚拟环境下安装Opencv

    Mac-OSX的Python3.5虚拟环境下安装Opencv 1   关键词 关键词:Mac,OSX,Python3.5,Virtualenv,Opencv 2   概述 本文是一篇 环境搭建 的基础 ...

随机推荐

  1. 【支付宝支付】扫码付和app支付,回调验证签名失败问题

    在检查了参数排序,编码解码,文件编码等问题后,发现还是签名失败,最后找出原因: 扫码付和app支付采用的支付宝公钥不一样   Pid和公钥管理里面:   开放平台密钥界面和开放平台应用界面的密钥应该一 ...

  2. 《嵌入式linux应用程序开发标准教程》笔记——8.进程间通信

    , 8.1 概述 linux里使用较多的进程间通信方式: 管道,pipe和fifo,管道pipe没有实体文件,只能用于具有亲缘关系的进程间通信:有名管道 named pipe,也叫fifo,还允许无亲 ...

  3. A Fast and Easy to Use AES Library

    http://www.codeproject.com/Articles/57478/A-Fast-and-Easy-to-Use-AES-Library Introduction EfAesLib i ...

  4. url编码&&PHP大法&&这个看起来有点简单&&HTML 中有用的字符实体

    URL编码 Url编码通常也被称为百分号编码(Url Encoding,also known as percent-encoding),是因为它的编码方式非常简单,使用%百分号加上两位的字符——012 ...

  5. webservice 测试地址

    腾讯QQ在线状态 WEB 服务Endpoint: http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx Disco: http:// ...

  6. 01-封装函数求斐波那契数列第n项

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  7. OSQL 用法

    osql中的启动参数如下: -?:列出osql各个参数的语法摘要. -U login_id:用来指出登录名称,登录名区分大小写. -P password:用来指出登录名称所对应的密码. -E:表示采用 ...

  8. 【Luogu】P1868饥饿的奶牛(DP)

    题目链接 话说我存一些只需要按照一个关键字排序的双元素结构体的时候老是喜欢使用链式前向星…… DP.f[i]表示前i个位置奶牛最多能吃到的草.转移方程如下: f[i]=f[i-]; f[i]=max( ...

  9. 【Hihocoder1034】毁灭者问题(splay,树状数组)

    题意: 假设你拥有 n 个魔法单位,他们从左到有站在一行,编号从 1 到 n. 每个单位拥有三项属性: si: 初始法力. mi: 最大法力上限. ri: 每秒中法力回复速度. 现在你操纵一个毁灭者, ...

  10. *Codeforces961G. Partitions

    $k \leq n \leq 100000$,求式子$Ans=\sum_{i=1}^n w_i\sum_{j=1}^n j\binom{n-1}{n-j} \{ ^{n-j}_{k-1} \}$. 题 ...