用C语言实现均值滤波
时间: 2023-09-13 13:05:14 浏览: 102
好的,我可以为您提供一个简单的C语言代码实现均值滤波的例子,如下所示:
```c
#include <stdio.h>
#include <stdlib.h>
#define ROW 3
#define COL 3
int main()
{
int image[ROW][COL] = {{10, 20, 30},
{40, 50, 60},
{70, 80, 90}};
int filtered[ROW][COL] = {0};
int i, j, k, l, sum, count;
// Applying Mean Filter
for(i=0;i<ROW;i++)
{
for(j=0;j<COL;j++)
{
sum = 0;
count = 0;
for(k=i-1;k<=i+1;k++)
{
for(l=j-1;l<=j+1;l++)
{
if(k>=0 && l>=0 && k<ROW && l<COL)
{
sum += image[k][l];
count++;
}
}
}
filtered[i][j] = sum/count;
}
}
// Printing Filtered Image
printf("Filtered Image:\n");
for(i=0;i<ROW;i++)
{
for(j=0;j<COL;j++)
{
printf("%d\t", filtered[i][j]);
}
printf("\n");
}
return 0;
}
```
这个程序使用了一个3x3的图像矩阵,然后实现了一个均值滤波器,将每个像素点替换为其周围像素的平均值。程序遍历每个像素点,在每个像素点的周围3x3的范围内计算像素值的平均值,然后用这个平均值替换当前像素点的值。最后,程序打印出滤波后的图像矩阵。
阅读全文