四、实验作业
- 利用空间域滤波对图像进行增强处理,要求:
● 通过C#控制台应用程序读入一个灰度图像;
● 获取灰度图像的像素值,并存入二维数组;
● 选择不同的空间域滤波器对二维数组进行卷积运算;
● 利用卷积运算后的新图像像素值重新生成图像,并存储图像文件。
1 由于读取图像和存储图像、对图像变量进行操作,均需要使用Bitmap类,该类需要在解决方案资源管理器添加引用“System.Drawing”,并在Program.cs代码文件中引用命名空间“using System.Drawing;”:

2 读取灰度图像文件,并存入图像实例(如myImage):
string filename = "E:\a.jpg"; //换成自己的图像文件地址
Bitmap myImage = new Bitmap(filename);
int x = myImage.Width; //图像的宽度,即列数
int y = myImage.Height; //图像的高度,即行数
请自行声明二维数组(如pixel[,])用以存放图像像素值。
3 像元[i,j]处像素值的获取,可使用图像实例的GetPixel()方法:
//因为是灰度图像,所以每个像素的RGB三个通道值均可作为图像亮度值
pixels[i, j] = myImage.GetPixel(i, j).R;
4 要求从控制台读入一个整数,并根据整数值选择相应的滤波器,如果输入的整数不是正确序号,应该给出处理的方法(使用goto跳转语句),可参考:

5 根据选择的滤波器进行卷积运算,使用的滤波器包括(也可自行设计滤波器):
均值滤波:

中值滤波:9个像元按大小排序,求中间位置的像元。
Prewitt梯度:注意两个模版分别卷积计算后的绝对值再求和r
