目录
一、灰度原理
1.1 图像的存储与像素
1.1.1 像素与分辨率
像素是影像显示的基本单位,是一个具有明确位置和颜色值的方格。
分辨率指的是一个显示系统对图像细节的分辨能力,通常以长边像素个数乘以宽边像素个数来表示。
目前有多种分辨率,如VGA,HD,4K等。
以VGA为例,VGA(Video Graphics Array)是IBM在1987年随PS/2机一起推出的一种视频传输标准,其分辨率为640×480,
表示在以VGA作为分辨率的显示屏上,其长边具有640个像素边长,宽边具有480个像素边长。
同理,对于4K分辨率(3840×2160)来说,则以4K作为分辨率的显示屏上,其长边具有3840个像素边长,宽边具有2160个像素边长。
显然,在4K分辨率下显示的图像普遍会比在VGA分辨率下显示的图像更加清晰,细节程度更高。
1.1.2 物理原理
图像在计算机中存储的本质是:存储每一个组成这副图像的各个像素的颜色值。
各个像素的颜色值,在计算机看来,就是一连串的二进制序列。
也就是说,对于一副图像,其每一个像素的颜色值都由一个对应的二进制序列来控制。
对于每一个像素的二进制序列,都会经过显卡,将CPU提供的指令和数据进行相应的处理,变成显示器能够接受的文字或图像。
再通过显示器显示出来,最终呈现在计算机使用者的眼前。
1.2 RGB图像
RGB指的是三原色光模式(RGB color model),又称RGB颜色模型或红绿蓝颜色模型,是一种加色模型,将红(Red)、绿(Green)、蓝(Blue)三原色的色光以不同的比例相加,以合成产生各种色彩光。
在计算机中,我们赋予RGB图像的每一个像素24位,即3个8位二进制数。
其中,这三个8位的二进制数分别表示红色,绿色和蓝色的强度:如(0,0,0)表示红色的强度为0,绿色的强度为0,蓝色的强度为0。既然每种颜色的强度都为0,那么(0,0,0)表示的是黑色。
同理,(255,255,255)表示的是白色,(255,0,0)表示的是红色。
也就是说,一副RBG图像的每一个像素都由三个向量来量化,总共可以表示256³,也就是16777216种不同的颜色。
1.3 灰度图像
显然,对于部分不需要颜色检测的图像处理来说,减少图像的原始数据量可以使我们后续的计算更少、更快。
所以我们可以先将图像进行灰度预处理。
灰对于一副RGB图像来说,其每一个像素由三个分量构成;
而对于一副灰度图像来说,其每个向量仅由一个分量构成。
每一个分量的大小为8位,也就是总共有256种选择。
灰度图像即是用256个数字来衡量灰度的深浅,值越大,代表越白,值越小,代表越黑。255代表白色,0代表黑色。
二、RGB转灰度公式
RGB图像转灰度有一个公式:
这个公式是用一个1×3的矩阵去左乘从上至下依次为B,G,R的RGB3×1矩阵。
得到的则是一个灰度值。
再将每一个像素都应用这个灰度值,最终则组成了由RGB转灰度的灰度图像。