基于机器视觉的图像灰度化方法比较分析

小白学视觉

共 3007字,需浏览 7分钟

 ·

2021-08-05 23:36


点击上方小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达


01. 引言


由于现代工业生产中大部分的工件是彩色物件,而对于计算机来说彩色图片包含的信息太多,以至于对于计算机来说任务过于繁重。处理图像的时候,要分别对RGB三种分量进行处理,实际上RGB并不能反映图像的形态特征,只是从光学的原理上进行颜色的调配。因此选择一种合适的并且使用的灰度化算法作为预处理的方式对于工业生产和信息处理具有非常重大的意义。


02. 图像灰度化的定义


将RGB图像转化成为灰度图像的过程成为图像灰度化。对于一般的工件来说CCD获得的工件通常是RGB图像,对于每个图像来说,每个像素通常有三通道组成,也就是RGB三通道。而对于彩色图像来说在传到计算机时传入的信息太多,这对于计算机来说直接处理彩色图像难度非常大。当R=G=B时,图像仅由一个分量就可以表示出来,这对于计算机来说减少了很多的任务量。


灰度图像上每个像素的颜色值又称为灰度,指黑白图像中点的颜色深度,范围一般从0到255,白色为255,黑色为0。所谓灰度值是指色彩的浓淡程度,灰度直方图是指一幅数字图像中,对应每一个灰度值统计出具有该灰度值的象素数。


灰度就是没有色彩,RGB色彩分量全部相等。如果是一个二值灰度图像,它的象素值只能为0或1,我们说它的灰度级为2。用个例子来说明吧:一个256级灰度的图像,如果RGB三个量相同时,如:RGB(100,100,100)就代表灰度为100,RGB(50,50,50)代表灰度为50。


现在大部分的彩色图像都是采用RGB颜色模式,处理图像的时候,要分别对RGB三种分量进行处理,实际上RGB并不能反映图像的形态特征,只是从光学的原理上进行颜色的调配。


图像灰度化处理可以作为图像处理的预处理步骤,为之后的图像分割、图像识别和图像分析等上层操作做准备。


03. 图像灰度化的方法


图像灰度化常用以下几种方法:

(1)分量法

将彩色图像的三个分量的亮度作为三个灰度图像的灰度值,根据实际需要选择一种灰度图像。公式如下:

(2)最大值法

(3)平均值法

将彩色图像的三个分量亮度求平均得到一个灰度值:

(4)加权平均法

根据重要性和其他的指标,将三个分量用不同的权值进行加权平均。对于人类来说,人眼对于绿色的敏感程度最高,对于蓝色的敏感程度最低,因此,按照以下公式对RGB三个分量进行加权平均得到比较合理的灰度图像。


04. Matlab对比仿真


待仿真的源程序如下:



firstpic =imread('C:\gongjian.jpg');figure(1);imshow(Firstpic); MyFirstGrayPic = rgb2gray(Firstpic);figure(2);imshow(firstpic); [rows , cols , colors] = size(Firstpic);MidGrayPic1 = zeros(rows , cols);MidGrayPic1= uint8(MidGrayPic1);for i =1:rows for j = 1:cols sum = 0; for k = 1:colors sum = sum + Firstpic(i , j , k) /3; end MidGrayPic1(i , j) = sum; end end figure(3);imshow(MidGrayPic1); MidGrayPic2 = zeros(rows , cols); MidGrayPic2= uint8(MidGrayPic2) for i = 1:rows for j = 1:cols MidGrayPic2(i , j)=max(Firstpic(i,j,:)); endendfigure(4);imshow(MidGrayPic2);MidGrayPic3= zeros(rows , cols);MidGrayPic3= uint8(MidGrayPic3);for i =1:rows for j = 1:cols MidGrayPic3(i , j) = Firstpic(i , j ,1)*0.30+Firstpic(i , j , 2)*0.59+Firstpic(i , j , 3)*0.11; endendfigure(5);imshow(MidGrayPic3);


05. 仿真结果对比


经过仿真后,不同图像灰度化的方法各结果分别如下图1所示:


(a)原图

(b)系统函数灰度化 

(c)加权平均值灰度化

(d)最大值法灰度化 

(e)平均值法灰度化

图1 不同图像灰度化的方法各结果对比图


由于此次工件选择的是金色物体,我们发现对于Matlab自带函数进行的灰度化,得到的图片能够满足一般的信息处理要求,但是整体有一些偏白。对于本次处理平均值法对比度有一些差,此次对比后得出加权平均值法灰度化和最大值法灰度化得到的结果最好,图片的对比度得到了改善,细节也处理得较为妥当。


06. 结束语


图像灰度化作为图像预处理的重要步骤之一,可以说是图像处理的第一步,得到好的图像对于以后的信息获取、物件定位及抓取物件起到非常重要的作用,本文给出了三种灰度化方法,对于不同类型的物件应选择一种合适的物件进行选取,通过对比分析对于以后的图像处理起到重要作用。


特别声明:此文章来源《智能机器人》选辑,作者:齐鲁工业大学(山东省科学院)高韩、曲阜远东职业技术学院陈慧程


下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲
小白学视觉公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲
小白学视觉公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群


欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~


浏览 26
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报