大多数图像处理算法都是从灰度处理开始的。
当我开始将图像处理用于童鞋时,我可能会像我一样。
我经常看到诸如彩色图像存储,转换为灰度,灰度和二值化之类的东西。
我一直对这些概念感到困惑,但我不知道该怎么做。
因此,今天我将为您详细介绍这两个概念。
在开始本文之前,让我们对图像的基本颜色RGB有一个简短的了解。
在图像处理中,使用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 *处理前的* 0.3 + G处理前* 0.59 +处理前的B *处理后的0.11G灰度=处理前的R *处理前的0.3+处理前的G *处理前的0.59 + B *处理后的0.11B灰度=处理前的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 b
产品资料
行业信息