中值滤波算法--C 语言实现
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
中值滤波就是先排序然后找到中位值下边是c语言的实现供参考
// 交换两个数的值
void swap(int* a, int* b)
{
int temp = *a;
*a = *b;
*b = temp;
}
//实现中值滤波
int mid_filt(int data[], int size)
{
int temp[size];
// 复制数组
for (int i = 0; i < size; i++)
temp[i] = data[i];
// 冒泡排序
for (int i = 0; i < size - 1; i++)
for (int j = 0; j < size - 1 - i; j++)
if (temp[j] > temp[j + 1])
swap(&temp[j], &temp[j + 1]);
//基数返回中位数
if (size % 2 == 1)
return temp[size / 2];
//偶数返回中间两个中的平均值
else
return (temp[size / 2] + temp[(size / 2) - 1]) / 2;
}