opencv c++ 降噪
时间: 2023-09-10 17:10:46 浏览: 209
OpenCV提供了多种降噪方法,其中最常见的是使用高斯滤波和中值滤波。以下是使用这两种方法进行图像降噪的示例代码:
1. 高斯滤波:
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
Mat img = imread("image.jpg", IMREAD_COLOR);
if (img.empty())
{
cout << "Could not read the image" << endl;
return -1;
}
Mat blurred_img;
GaussianBlur(img, blurred_img, Size(5, 5), 0, 0);
imshow("Original Image", img);
imshow("Blurred Image", blurred_img);
waitKey(0);
return 0;
}
```
在上面的代码中,我们使用`GaussianBlur()`函数来对图像进行高斯滤波。该函数需要输入原始图像、输出图像、卷积核大小和高斯核标准差等参数。
2. 中值滤波:
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
Mat img = imread("image.jpg", IMREAD_COLOR);
if (img.empty())
{
cout << "Could not read the image" << endl;
return -1;
}
Mat blurred_img;
medianBlur(img, blurred_img, 5);
imshow("Original Image", img);
imshow("Blurred Image", blurred_img);
waitKey(0);
return 0;
}
```
在上面的代码中,我们使用`medianBlur()`函数来对图像进行中值滤波。该函数需要输入原始图像、输出图像和卷积核大小等参数。
这些函数都可以降低图像中的噪声,但是它们可能会模糊一些细节。因此,在选择使用哪种方法时应该根据具体情况进行评估。
阅读全文