本文主要介绍的是使用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
网友评论