【从零学习openCV】IOS7下的openCV开发起步(Xcode5.1.1&openCV2.49)
前言:
开发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协议
详细实现代码例如以下:
头文件:
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)的更多相关文章
- [OpenCV][ARM9下移植OpenCV]
[OpenCV][ARM9下移植OpenCV] 安装环境 宿主机: Red Hat Enterprise Linux Server 6.3 开发板: mini2440 相关软件: cmake-3. ...
- Android学习笔记01-Mac下搭建Java开发环境
一 安装JDK 下载 mac 下专用的jdk1.7, 下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downlo ...
- Ubuntu下Node.js开发起步之旅
因为忙其它的事,把Node.js的学习放下了快两个月了,世事变化还真快,发现很多东东都改变了,express已经升级到4.x了,变化还不小! 我原来的学习过程是在VirtualBox中安装Ubuntu ...
- 【从零学习openCV】IOS7下的人脸检測
前言: 人脸检測与识别一直是计算机视觉领域一大热门研究方向,并且也从安全监控等工业级的应用扩展到了手机移动端的app,总之随着人脸识别技术获得突破,其应用前景和市场价值都是不可估量的,眼下在学习ope ...
- 【从零学习openCV】IOS7根据人脸检测
前言: 人脸检測与识别一直是计算机视觉领域一大热门研究方向,并且也从安全监控等工业级的应用扩展到了手机移动端的app.总之随着人脸识别技术获得突破,其应用前景和市场价值都是不可估量的,眼下在学习ope ...
- 【从零学习openCV】IOS7人脸识别实战
前言 接着上篇<IOS7下的人脸检測>,我们顺藤摸瓜的学习怎样在IOS7下用openCV的进行人脸识别,实际上非常easy,因为人脸检測部分已经完毕,剩下的无非调用openCV的方法对採集 ...
- [学习OpenCV攻略][017][ARM9下移植OpenCV]
安装环境 宿主机: Red Hat Enterprise Linux Server 6.3 开发板: mini2440 相关软件: cmake-3.5.1.tar.gz.OpenCV-2.3.1a.t ...
- [学习OpenCV攻略][016][RedHat下安装OpenCV]
安装环境 操作系统: Red Hat Enterprise Linux Server 6.3 相关软件: ffmpeg-0.8.15.tar.bz2.cmake-3.5.1.tar.gz.OpenCV ...
- Mac-OSX的Python3.5虚拟环境下安装Opencv
Mac-OSX的Python3.5虚拟环境下安装Opencv 1 关键词 关键词:Mac,OSX,Python3.5,Virtualenv,Opencv 2 概述 本文是一篇 环境搭建 的基础 ...
随机推荐
- axure笔记--变量值在页面之间的传递
fx 先给局部变量赋值,再添加到上面,即给全局变量赋值. 实现页面跳转: 1.打开链接,选择要跳转的下个页面---确定 2.打开那个下一个跳转的页面,要得到上个页面的值,需要到页面交互---页 ...
- 第一章 pyhton基础
一 .pyhton2与python3的区别 在pyhton2中,其中编码默认使用的是ascii编码,输出格式为print"xxx",输入为raw_input(“请输入”),在整型中 ...
- 基础训练 2n皇后问题
2n皇后问题 #include<iostream> #include<vector> using namespace std; int cnt = 0, n; vector&l ...
- python图像插值
最近邻:选择离它所映射到的位置最近的输入像素的灰度值为插值结果. 最临近插值 图像的缩放很好理解,就是图像的放大和缩小.传统的绘画工具中,有一种叫做“放大尺”的绘画工具,画家常用它来放大图画.当然,在 ...
- Errors occurred during the build. Errors running builder 'JavaScript Validator'
选择一个项目--右键Properties--Builders--取消第2个"JavaScript Validator"的勾就OK了.
- Cocoa-Cocoa对象
2.Cocoa对象 2.1 Objective-C是面向对象的语言 Objective-C和Java C++一样,有封装,继承,多态,重用.但是它不像C++那样有重载操作法.模版和多继承,也没有Jav ...
- vim使用技巧二 模式
第一部分模式 第2章 普通模式 打开vim的默认状态即为普通模式 普通模式的命令强大 很大程度源于可以把操作符与动作命令结合在一起 技巧7 停顿时请移开画笔 工欲善其事,必先利其器 准 ...
- TOJ 4701 求阴影部分面积
4701: 求阴影部分面积 本文版权归BobHuang和博客园共有,不得转载.如想转载,请联系作者,并注明出处. Time Limit(Common/Java):1000MS/3000MS ...
- CF802D
D. Marmots (easy) time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...
- LINUX DNS客户端 解析域名慢的问题。
Linux系统下域名解析的配置文件是/etc/resolv.conf cat /etc/resolv.conf # Generated by NetworkManager options single ...