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

本文介绍如何使用OpenCV框架将彩色图片转换为灰度图。文章详细讲解了从导入框架开始,通过创建Mat对象,利用cvtColor API进行颜色空间转换,最终将灰度图展示出来的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我头像是啥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值