【从零学习openCV】IOS7下的openCV开发起步(Xcode5.1.1&openCV2.49)
来源:互联网 发布:网络广播系统拓扑图 编辑:程序博客网 时间:2024/06/10 01:58
前言:
开发IOS7已经有一月的时间了,最近在准备推研的事,有点想往CV方向发展,于是开始自学openCV。
关注CSDN已经很久了,也从很多博主那学到了很多知识,于是我也从这周开启自己的blog之旅,从零开始学openCV,从零开始做笔记写blog,哈哈~
好了,废话不多说,进入正题。。
IOS7下使用openCV
Mac OS下要使用openCV当然要编译,但是如果只是在ios下使用openCV的话,只需要将bulid好的opencv2.framework导入到工程中即可。
opencv2.framework在openCV官网上下载即可,传送门:opencv2.framework
下面我们在Xcode下新建一个Single View Appliction,命名为CvForIOS。
将下载好的opencv2.framework拷贝到新建好的工程目录下,然后导入到工程目录下Frameworks中,还有IOS7.1下的libc++.dylib也要导入。
然后需要在Build Settings中,将“C++ Standard Library”设置成libstdc++。
因为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上添加一个按钮,一个UIImageView控件,一个UISlider,布局如下:
各控件的消息响应和连接如下:
将视图控制器实现文件的后缀名改为.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】IOS7下的人脸检测
- 【从零学习openCV】IOS7下的人脸检測cvload错误解决
- 【从零学习openCV】IOS7人脸识别实战
- opencv学习起步(一)
- 【从零学习openCV】opecv操作像素
- 【从零学习openCV】ubuntu+openCV+qt安装配置
- 【opencv学习笔记一】opencv2.4.3在vs2008下的配置(包括测试程序)
- 【学习OpenCV】OpenCV起步--下载离线文档
- opencv的配置(opencv2.4.9+vs2012)
- 智能手机Smartphone开发从零起步(一)
- 智能手机Smartphone开发从零起步(二)
- 智能手机Smartphone开发从零起步(三)
- 智能手机Smartphone开发从零起步(四)
- 智能手机Smartphone开发从零起步(五)
- opencv学习之VS2010下配置opencv2.4.9
- 【从零学习openCV】使用直方图统计像素
- 【零起步开发Cocos2dx-3.x-王牌飞行员(二)】从程序的层次结构说起
- DVRRDK, EZSDK和DVSDK这三者有什么区别
- 将不知位数的数进行反转后输出
- 9个offer,12家公司,35场面试,从微软到谷歌
- 博弈论--巴什博弈——HDU1846
- 想你的唇你的美
- 【从零学习openCV】IOS7下的openCV开发起步(Xcode5.1.1&openCV2.49)
- android 2.3.6Gallary源码导入到Eclipse中编译
- 【Python】Python的类型转换
- Linux USB驱动详解
- thinkphp与ajax连接教程
- 中断方式与轮询方式比较
- android-Anmation动画详讲
- 一个简单实例——快速理解前端web开发的MVC模式
- RPC远程调用