跳至内容
深圳市捷比信实业有限公司 · 产品选型与采购咨询联系业务人员
铝电解电容捷比信 · 专业器件主题站

图像处理:灰度处理和二值化

在图像处理中,使用RGB的三个分量(R:红色,G:绿色,B:蓝色)来表示真实颜色,即红色,绿色和蓝色的三个原色。 R,G和B分量的取值范围均为0〜255,例如,计算机屏幕上红色像素的三个分量的取值为255、0、0.Pixels Pixels是最小的图像单元。图片由许多像素组成。下图是一条腿的照片。查看此图片的信息,尺寸为800 * 800,宽度为800像素,高度为800像素。换句话说,这张图片是由一个800 * 800像素的矩阵组成的(如果您不了解该矩阵的含义,则可以将该矩阵理解为C语言的二维数组)。这个矩阵是800行800列。像素是图像的最小单位。该图片的宽度为800像素的长度,高度为800像素的长度。共有800 * 800 = 640000像素。因为像素的颜色由RGB的三个值表示,所以像素矩阵对应于三个颜色矢量矩阵,分别是R矩阵,G矩阵和B矩阵。它们也是800 * 800矩阵。下图显示了此图片的部分颜色矩阵数据:这是R矩阵的一部分,这是G矩阵的一部分,这是B矩阵的一部分,例如第一个的值每个矩阵的行和第一列是:R:240,G:223,B:204,所以这个像素的颜色是(240,223,204),并且三个矩阵的值可能不对应于每个其他。这只是供读者理解的。了解了图片由像素矩阵组成后,我们知道对图像的处理就是该像素矩阵的操作。如果要更改某个像素的颜色,只需查找像素在像素矩阵中的位置,例如第x行和yth列,这样就可以表示像素在像素矩阵中的位置作为(x,y),由于像素的颜色由红色,绿色和蓝色决定,由三个颜色变量表示,因此我们可以通过为这三个变量分配值来更改该像素的颜色。例如,将其更改为红色(255,0,0),可以表示为(x,y,(R = 255,G = 0,B = 0))。那么图片的灰度是多少?实际上很简单,就是让像素矩阵中的每个像素满足以下关系:R = G = B(红色变量的值,绿色变量的值和蓝色变量的值变量,这三个值是相等的,``=''表示不是编程语言中的赋值,而是数学上的相等性),此时的值称为灰度值。灰度处理的方法:灰度处理通常使用两种方法。方法1:灰度后的R =(处理前的R +处理前的G +处理前的B)/灰度后的3G =(处理前的R +处理前的G +处理前的B)/ 3灰度B =(处理前的R + G方法3:方法2:灰度后的R =处理前的R =处理前的R *处理前的0.3 + G *处理前的B * 0.59 +处理前的B *灰度后的0.11 G =处理前的R * 0.3 +处理前的G *处理前的* 0.59 + B *灰度后的0.11 B =处理前的R * 0.3 +处理前的G * 0.59 +处理前的B * 0.11图片的效果图2的灰度如下:我个人认为第二种方法更好,并且第一种方法得到了处理。图片有点模糊。图像二值化什么是图像二值化?二值化是使图像的像素矩阵中每个像素的灰度值分别为0(黑色)或255(白色),即使整个图像仅显示为黑白。灰度图像的灰度值范围为0〜255,二值化图像的灰度值范围为0或255。黑色:二值化后R = 0,二值化后G = 0,二值化后B = 0,白:R二值化后= 255,二值化后G = 255 = 255那么如何将灰度后的像素的灰度值转换为0或255?例如,灰度值为100,然后在二值化后为0或255?这涉及采取阈值的问题。常用的二值化方法:方法1:将阈值设置为127(相当于中值0〜255,(0 + 255)/ 2 = 127),并使小于或等于127的灰度值变为0(黑色)如果灰度值大于127,则它将变为255(白色)。这样做的优点是计算量小并且速度快,但是缺点也很明显,因为此阈值在不同的图片中为127,但是在不同的图片中,它们的颜色分布非常不同,因此如果使用127作为门槛,全盘切白菜和萝卜,效果肯定不好。方法2:计算平均平均值