用c语言写一个均值滤波函数,并详细注释每一条语句
时间: 2023-05-20 22:05:41 浏览: 96
非常感谢您的提问,以下是用 C 语言编写的均值滤波函数及其详细注释:
```c
#include <stdio.h>
// 定义均值滤波函数
void mean_filter(int *input, int *output, int size, int window_size) {
int i, j, sum;
// 遍历输入数组
for (i = 0; i < size; i++) {
sum = 0;
// 计算窗口内的元素和
for (j = i - window_size / 2; j <= i + window_size / 2; j++) {
if (j >= 0 && j < size) {
sum += input[j];
}
}
// 计算窗口内元素的平均值
output[i] = sum / window_size;
}
}
int main() {
int input[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int output[10];
int i;
// 调用均值滤波函数
mean_filter(input, output, 10, 3);
// 输出滤波后的结果
for (i = 0; i < 10; i++) {
printf("%d ", output[i]);
}
printf("\n");
return 0;
}
```
注释如下:
```c
#include <stdio.h>
// 定义均值滤波函数
void mean_filter(int *input, int *output, int size, int window_size) {
int i, j, sum;
// 遍历输入数组
for (i = 0; i < size; i++) {
sum = 0;
// 计算窗口内的元素和
for (j = i - window_size / 2; j <= i + window_size / 2; j++) {
if (j >= 0 && j < size) { // 判断是否越界
sum += input[j]; // 累加元素和
}
}
// 计算窗口内元素的平均值
output[i] = sum / window_size;
}
}
int main() {
int input[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int output[10];
int i;
// 调用均值滤波函数
mean_filter(input, output, 10, 3);
// 输出滤波后的结果
for (i = 0; i < 10; i++) {
printf("%d ", output[i]);
}
printf("\n");
return 0;
}
```
希望能够帮助您解决问题,如果您还有其他问题,欢迎继续提问。
阅读全文