int16_t median_filter(int16_t *buf) { int16_t tmp[FILTER_SIZE]; memcpy(tmp, buf, FILTER_SIZE * sizeof(int16_t)); for (uint8_t i = 0; i < FILTER_SIZE - 1; i++) { for (uint8_t j = i + 1; j < FILTER_SIZE; j++) { if (tmp[i] > tmp[j]) { int16_t t = tmp[i]; tmp[i] = tmp[j]; tmp[j] = t; } } } return tmp[FILTER_SIZE / 2]; }的程序框图
时间: 2023-06-26 07:10:27 浏览: 71
Median-filtering.rar_median filter
以下是该程序的框图:
![median_filter](https://img-blog.csdnimg.cn/20211103170547518.png)
其中,输入为一个长度为FILTER_SIZE的int16_t类型数组buf,表示需要进行中值滤波的原始数据;输出为一个int16_t类型的中值滤波结果。
具体实现过程为:首先将原始数据复制到一个临时数组tmp中;然后使用选择排序算法对tmp数组进行排序,得到有序的数组;最后返回tmp数组中位于中间位置的元素作为中值滤波结果。
阅读全文