灰度图像7*7均值滤波处理C++代码
时间: 2024-03-21 21:14:48 浏览: 53
以下是7*7均值滤波处理的C++代码示例:
```cpp
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main(int argc, char** argv)
{
// 读取图像
Mat image = imread("lena.jpg");
if (image.empty())
{
cout << "Could not open or find the image" << endl;
return -1;
}
// 将图像转换为灰度图像
Mat grayImage;
cvtColor(image, grayImage, COLOR_BGR2GRAY);
// 创建7x7的卷积核模板
Mat kernel = Mat::ones(7, 7, CV_32F) / (float)(7 * 7);
// 进行均值滤波处理
Mat result;
filter2D(grayImage, result, -1, kernel, Point(-1, -1), 0, BORDER_DEFAULT);
// 显示原始图像和处理后的图像
namedWindow("Original Image", WINDOW_NORMAL);
namedWindow("Result", WINDOW_NORMAL);
imshow("Original Image", grayImage);
imshow("Result", result);
waitKey(0);
return 0;
}
```
在这个示例中,我们首先读取了一张图像,然后将其转换为灰度图像。然后,我们创建一个大小为7x7的卷积核模板,并将其元素的值设置为1/49(即1/7x7)。最后,我们使用filter2D函数将模板应用于灰度图像,并显示原始图像和处理后的图像。
阅读全文