什么是图像处理?
我的理解是,图像处理即就是对图像的各个像素点进行处理。
一、灰度化
灰度化,也就是黑白化,就是将图像进行黑白处理,使其失去色彩。而从像素点出发,就是使各个像素点的三种颜色分量R、G、B的值相同。
常用的黑白化的方法有三种:
- 第一种是最大值法(Maximum):
R=G=B=Max(R,G,B),这种方法处理后灰度图象的亮度会偏高,不建议采用。
- 第二种就是平均值法(Average):
R=G=B=(R+G+B)/3,这种方法处理后灰度图象的亮度较柔和,本人就是采用的这种方法。
- 第三种是加权平均值法(Weighted Average):
R=G=B=wr*R+wg*G+wb*B,wr、wg、wb分别为R、G、B的权值。
鉴于本人只使用了第二种,所以就先贴上第二种的代码:
public Bitmap bmp1;
public Bitmap bmp2;
//黑白化
//平均值法: 使用每个像素点的 R,G,B值等于原像素点的RGB值的平均值
//效率略低,暂未查明具体原因,需3秒等待
public Image BlackANDWhite(PictureBox pic)
{
bmp1 = new Bitmap(pic.Image);
int width = bmp1.Width;
int height = bmp1.Height;
bmp2 = new Bitmap(width, height);
Color c;
for (int x = 0; x < width; x++)
{
for (int y = 0; y < height; y++)
{
c = bmp1.GetPixel(x, y);//获取像素
int value = (c.R + c.G + c.B) / 3;
bmp2.SetPixel(x, y, Color.FromArgb(value, value, value));//设置像素
}
}
return bmp2;
}
以下是代码的相关结果展示:
(未处理的图片来自百度)
二、锐化
锐化就是通过增强高频分量来减少图象中的模糊,因此又称为高通滤波。锐化处理在增强图象边缘的同时增加了图象的噪声。
常用的锐化模板是拉普拉斯(Laplacian)模板,而本人也是采用的拉普拉斯模板进行的锐化处理。