前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于机器视觉的图像灰度化方法比较分析

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

作者头像
小白学视觉
发布2021-08-05 16:19:31
9040
发布2021-08-05 16:19:31
举报

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对比仿真

待仿真的源程序如下:

代码语言:javascript
复制


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,:));
    end
end
figure(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;
    end
end
figure(5);
imshow(MidGrayPic3);

05. 仿真结果对比

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

(a)原图

(b)系统函数灰度化

(c)加权平均值灰度化

(d)最大值法灰度化

(e)平均值法灰度化

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

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

06. 结束语

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-08-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小白学视觉 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档