convolve滑动平均滤波 C++
时间: 2023-12-15 12:06:17 浏览: 123
根据提供的引用内容,我们可以了解到Python中的滑动平均滤波是基于Numpy.convolve实现的。而对于C++,我们可以使用OpenCV库中的filter2D函数来实现滑动平均滤波。
以下是使用OpenCV库中的filter2D函数实现滑动平均滤波的C++代码:
```cpp
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
Mat src = imread("test.jpg");
if (src.empty())
{
cout << "Could not open or find the image!\n" << endl;
return -1;
}
Mat dst;
int kernel_size = 3;
Mat kernel = Mat::ones(kernel_size, kernel_size, CV_32F) / (float)(kernel_size * kernel_size);
filter2D(src, dst, -1, kernel, Point(-1, -1), 0, BORDER_DEFAULT);
imshow("Source Image", src);
imshow("Filtered Image", dst);
waitKey(0);
return 0;
}
```
在上述代码中,我们首先读取了一张图片,然后定义了一个3x3的卷积核,通过filter2D函数对原图进行滑动平均滤波,最后将滤波后的图像显示出来。
阅读全文