博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【从零学习openCV】IOS7下的openCV开发起步(Xcode5.1.1&openCV2.49)
阅读量:5796 次
发布时间:2019-06-18

本文共 1236 字,大约阅读时间需要 4 分钟。

前言:

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

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

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

IOS7下使用openCV

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

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

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

将下载好的opencv2.framework复制到新建好的project文件夹下,然后导入到project文件夹下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上的开源码,传送门:

代码例如以下:

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

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

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

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

详细实现代码例如以下:

头文件:

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

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

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

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

(转载请注明作者和出处:Shawn-HT   未经同意请勿用于商业用途)

參考文章:

你可能感兴趣的文章
vue去掉#——History模式
查看>>
2018年7月第一周网站建站笔记
查看>>
MongoDB工具MagicMongoDBTool使用介绍(一) -- 简单MongoDB入门
查看>>
javascript的事件
查看>>
201521123009 《Java程序设计》第1周学习总结
查看>>
年终述职--常见问题分析解答
查看>>
在mui中创建aJax来请求数据..并展示在页面上
查看>>
spring 之AOP
查看>>
总结 15/4/23
查看>>
Windows 7环境下网站性能测试小工具 Apache Bench 和 Webbench使用和下载
查看>>
C#常见错误解决方法
查看>>
安装cnpm (npm淘宝镜像)
查看>>
Java 面向对象(基础) 知识点总结I
查看>>
读书笔记《自控力》
查看>>
区域生长算法
查看>>
hive学习2(Navicat连接hive)
查看>>
getResourceAsStream的3种路径配置
查看>>
switch语句小练习
查看>>
组合逻辑电路
查看>>
POP-一个点击带有放大还原的动画效果
查看>>