使用opencv的c++语言对图片进行平滑处理
时间: 2023-12-30 12:04:26 浏览: 31
可以使用OpenCV中的GaussianBlur函数对图片进行平滑处理。具体实现代码如下:
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main(int argc, char** argv)
{
// 读取图片
Mat srcImg = imread("test.jpg");
// 判断图片是否读取成功
if (srcImg.empty()) {
cout << "图片读取失败!" << endl;
return -1;
}
// 创建一个与原图片相同大小的空白Mat对象
Mat dstImg = Mat::zeros(srcImg.size(), srcImg.type());
// 对图片进行平滑处理
GaussianBlur(srcImg, dstImg, Size(5, 5), 0, 0);
// 显示原图片和平滑处理后的图片
namedWindow("原图片", WINDOW_NORMAL);
imshow("原图片", srcImg);
namedWindow("平滑处理后的图片", WINDOW_NORMAL);
imshow("平滑处理后的图片", dstImg);
waitKey(0);
return 0;
}
```
其中,GaussianBlur函数的参数解释如下:
- srcImg:原始图片;
- dstImg:处理后的图片;
- Size(5, 5):平滑处理的窗口大小,本例中为5x5;
- 0:沿X轴方向的标准差,为0表示自动计算;
- 0:沿Y轴方向的标准差,为0表示自动计算。
运行程序后,会弹出两个窗口,一个是原图片,一个是平滑处理后的图片。