用c++写一个均值滤波算法
时间: 2024-01-05 09:03:12 浏览: 86
下面是一个使用C++实现均值滤波算法的示例代码:
```c++
#include <iostream>
#include <vector>
using namespace std;
vector<double> mean_filter(vector<double> data, int window_size) {
vector<double> filtered_data;
int data_size = data.size();
double sum = 0.0;
for (int i = 0; i < window_size; i++) {
sum += data[i];
}
filtered_data.push_back(sum / window_size);
for (int i = window_size; i < data_size; i++) {
sum = sum - data[i - window_size] + data[i];
filtered_data.push_back(sum / window_size);
}
return filtered_data;
}
int main() {
vector<double> data = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0};
int window_size = 3;
vector<double> filtered_data = mean_filter(data, window_size);
for (double d : filtered_data) {
cout << d << " ";
}
cout << endl;
return 0;
}
```
这段代码实现了一个均值滤波算法,通过一个滑动窗口对数据进行处理,每次取窗口内的数据求平均值作为当前的输出。在这个示例中,输入数据是一个长度为10的向量,窗口大小为3,输出数据是一个长度为8的向量。
阅读全文
相关推荐













