opencv c++椒盐噪声
时间: 2023-06-30 16:20:31 浏览: 194
opencv添加椒盐噪声
4星 · 用户满意度95%
椒盐噪声是一种常见的图像噪声,可以使用OpenCV C++库来处理。
下面是一个简单的示例代码,演示如何使用OpenCV C++库来添加椒盐噪声并进行去噪:
```c++
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat image = imread("test.jpg", IMREAD_GRAYSCALE);
Mat noisyImage = image.clone();
// 添加椒盐噪声
int noisePercent = 10;
int noiseCount = (int)((float)noisePercent / 100 * image.rows * image.cols);
for (int i = 0; i < noiseCount; i++)
{
int row = rand() % image.rows;
int col = rand() % image.cols;
noisyImage.at<uchar>(row, col) = rand() % 2 == 0 ? 0 : 255;
}
// 进行中值滤波去噪
Mat denoisedImage;
medianBlur(noisyImage, denoisedImage, 3);
// 显示结果
imshow("Original Image", image);
imshow("Noisy Image", noisyImage);
imshow("Denoised Image", denoisedImage);
waitKey(0);
return 0;
}
```
在这个示例代码中,我们首先加载了一张灰度图像,并将其复制到一个新的Mat对象中。然后,我们通过随机选择像素并将其设置为黑色或白色来添加椒盐噪声。接下来,我们使用OpenCV的medianBlur函数进行中值滤波去噪。最后,我们显示了原始图像、添加了噪声的图像和去噪后的图像。
值得注意的是,这只是一个简单的示例代码,实际上,有很多其他的去噪方法可以使用,例如高斯滤波、双边滤波等。
阅读全文