iOS开发:使用openCV将图片变灰
本文主要介绍的是使用openCV框架让一张彩色图片变成灰色的。何为openCV?openCV是因特尔公司于1999年推出的一个图片处理框架。因为其开源,跨平台(Windows、mac系列、iOS、Android、linux)、支持多个语言(Java、C/C++、swift、Python、C#、Ruby等等)、稳定性能高等特点而受到广大开发者的欢迎,目前国内支付宝、qq、微信、没..
本文主要介绍的是使用openCV框架让一张彩色图片变成灰色的。何为openCV?openCV是因特尔公司于1999年推出的一个图片处理框架。因为其开源,跨平台(Windows、mac系列、iOS、Android、linux)、支持多个语言(Java、C/C++、swift、Python、C#、Ruby等等)、稳定性能高等特点而受到广大开发者的欢迎,目前国内支付宝、qq、微信、没牌等牵扯到视频处理的APP都是用到这了这个框架。
图1、使图片变灰
导入openCV 框架的时候需要注意两个问题,一是因为这个框架是C++写的,所以需要将是用到的类后缀修改为.mm,并且导入C++的命名空间;二是需要将openCV的所有头文件放在任何Apple headers之前。分别如图2、图3所示。
图2、未将openCV头文件放在Apple headers之前
图3、修改后缀与导入命名空间
一、创建两个Mat对象分别作为源文件和目标文件
创建源文件完毕之后,需要将UIImage对象,转换为openCV对象,因为如果要想使用openCV操作图像,那就必须将当前图像转换为Mat对象。
图4、UIImage对象到Mat对象
二、将彩色图片转换为灰色图片
openCV提供的一个API:cvtColor(InputArraysrc,OutputArraydst,intcode,intdstCn =0);使用这个接口将当前RGB图片转换为灰色的图片。
图5、转换Wie灰色图片
三、将灰色图片转换成可显示图片
图6、将上一步的目标文件转换为彩色图片并保存在源文件中
四、显示图片
将Mat对象转换为UIImage对象,并显示在_imageView中。
图7、显示图片
由于github上传的单个文件有大小限制(100M),所以这个demo上传的百度云:
链接: https://pan.baidu.com/s/1o7D5pzk 密码: 3esc
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)