彩色图像转换为灰度图像
作者: 网络
日期: 2009-08-11
文本介绍了将彩色图像转换为灰度图像的算法,并给出了代码样例。
简介数字图像在计算机上以位图(bitmap)的形式存在,位图是一个矩形点阵,其中每 一点称为像素(pixel),像素是数字图像中的基本单位。一幅m×n大小的图像,是 由m×n个明暗度不等的像素组成的。数字图像中各个像素所具有的明暗程度由灰 度值(gray level)所标识。一般将白色的灰度值定义为255,黑色灰度值定义为0, 而由黑到白之间的明暗度均匀地划分为256个等级。对于黑白图像,每个像素用 一个字节数据来表示,而在彩色图像中,每个像素需用三个字节数据来表述。彩 色图像可以分解成红(R)、绿(G)、蓝(B)三个单色图像,任何一种颜色都可以由 这三种颜色混合构成。在图像处理中,彩色图像的处理通常是通过对其三个单色 图像分别处理而得到的。 算法如果要将彩色图像转换为灰度图像,只要将图像中的每个像素取出来,然后取像 素的R、G、B颜色分量,利用如下公式计算灰度值: int gray = r*0.3 + g*0.59 + b*0.11; 然后再令像素的R、G、B分度值都为gray就行了 。 也有的资料提出灰度转换公式如下所示: int gray = (r+g+b) / 3; 两种方法转换后的灰度图片效果差不多。 代码样例public void GrayScale(Bitmap image ) 原始图片:
灰度图片:
SeeAlso |