用C语言编写一个均值滤波程序
时间: 2023-09-16 11:16:24 浏览: 175
好的,这个问题是关于编程的,可以回答。均值滤波是一种常见的数字图像处理方法,可以用来平滑图像并去除噪点。下面是一个使用C语言编写的简单均值滤波程序:
```
#include <stdio.h>
#define N 3 // 使用一个 3x3 的滤波器,也可以选择其他大小
int main() {
int img[5][5] = {{0, 0, 0, 0, 0},
{0, 1, 3, 1, 0},
{0, 3, 7, 3, 0},
{0, 1, 3, 1, 0},
{0, 0, 0, 0, 0}}; // 这里演示了一个 5x5 的图像
int result[5][5]; // 保存滤波结果的数组
for (int i = 1; i < 4; i++) {
for (int j = 1; j < 4; j++) {
int sum = 0;
for (int k = i-1; k <= i+1; k++) {
for (int m = j-1; m <= j+1; m++) {
sum += img[k][m];
}
}
result[i][j] = sum / (N*N);
}
}
// 输出滤波结果
for (int i = 1; i < 4; i++) {
for (int j = 1; j < 4; j++) {
printf("%d ", result[i][j]);
}
printf("\n");
}
return 0;
}
```
这个程序使用了一个 3x3 的滤波器,在遍历图像时对每个像素周围的 9 个像素取平均值,得到了平滑后的图像。你可以根据需要修改滤波器的大小。
阅读全文