点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达
先前在为大家介绍OCR识别技术时,在图像预处理部分提到了灰度化,大家可能会产生疑惑:为什么做图片识别要将彩色图像灰度化呢?
正式解释这个问题之前,我们需要了解,什么是灰度化?
什么是灰度化
简单地说,灰度化处理就是将一幅彩色图像转化为灰度图像的过程。
当我们在电脑、电视、或手机等显示器上显示彩色时,RGB模型是为达到目的而较为常用的一种彩色信息表达方式。
RGB模型也称为加色混色模型,是以R(红)G(绿)B(蓝)三色光互相叠加来实现混色的方法,尤其适用于显示器等发光物体。
而灰度化就是使彩色图像的R、G、B分量相等的过程,即令R=G=B,此时的彩色表示的就是灰度颜色。
会使用Photoshop的小伙伴可以打开颜色设置,令R=G=B,会发现随着数值的变化而出现明暗不同的灰色。
当R=G=B=255时,灰度值达到最高,显示为白色,反之则显示为黑色。
不会Photoshop的小伙伴们可以尝试用另一个方法来体会:当我们使用微信对屏幕进行截屏时,仔细观察鼠标下方的文字,会发现显示有当前鼠标所指位置的RGB值。如下图:
对下图的彩色和灰色部分分别进行RGB值查看,会发现彩色部分R、G、B值各有不同,而灰色部分则仅有灰度值的变化。
图:来源于网络
图像灰度化的目的
上文说到了将彩色图像转化为灰度图像的过程就是图像的灰度化处理过程。
图像灰度化的目的是为了简化矩阵,提高运算速度。
彩色图像中的每个像素颜色由R、G、B三个分量来决定,而每个分量的取值范围都在0-255之间,这样对计算机来说,彩色图像的一个像素点就会有256*256*256=16777216种颜色的变化范围!
而灰度图像是R、G、B分量相同的一种特殊彩色图像,对计算机来说,一个像素点的变化范围只有0-255这256种。
彩色图片的信息含量过大,而进行图片识别时,其实只需要使用灰度图像里的信息就足够了,所以图像灰度化的目的就是为了提高运算速度。
当然,有时图片进行了灰度处理后还是很大,也有可能会采用二值化图像(即像素值只能为0或1)。
图像灰度化处理的几种方式
图像灰度化处理主要有以下几种方式:
1. 分量法
将彩色图像中的三分量的亮度作为三个灰度图像的灰度值,可根据应用需要选取一种灰度图像。
图:来源于网络
2. 最大值法
将彩色图像中的三分量亮度的最大值作为灰度图的灰度值。
图:来源于网络
3. 平均值法
将彩色图像中的三分量亮度求平均得到一个灰度值。
图:来源于网络
4. 加权平均法
根据重要性及其它指标,将三个分量以不同的权值进行加权平均。由于人眼对绿色的敏感最高,对蓝色敏感最低,因此,按下式对RGB三分量进行加权平均能得到较合理的灰度图像。
图:来源于网络
对于以上四种处理方式,可根据实际需要进行选择。下图为分别使用四种方法得到的不同效果。
图:来源于网络
参考文献:
https://www.cnblogs.com/finlay/p/3665302.html
https://mp.weixin.qq.com/s/FWU0jVv8JH3qjsbfbkUXdw
声明:部分内容来源于网络,仅供读者学习、交流之目的。文章版权归原作者所有。如有不妥,请联系删除。
下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。
下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。
下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。
交流群
欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~