iOS开发:使用openCV将图片变灰

作者: 787ea54e5cc5 | 来源:发表于2017-06-06 16:23 被阅读75次

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

    相关文章

      网友评论

        本文标题:iOS开发:使用openCV将图片变灰

        本文链接:https://www.haomeiwen.com/subject/pbogfxtx.html