- 操作系统:ubuntu22.04
- OpenCV版本:OpenCV4.9
- IDE:Visual Studio Code
- 编程语言:C++11
算法描述
如果你已经有了一张干净的图像,并希望通过编程方式向其添加噪声,可以使用 OpenCV 来实现这一点。以下是一个简单的例子,展示如何在现有图像上添加高斯噪声:
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
// 函数:给图像添加高斯噪声
void addGaussianNoise( Mat& src, Mat& dst, double mean = 0.0, double stddev = 25.0 )
{
RNG rng( getTickCount() ); // 在这里初始化RNG对象
Mat noise( src.size(), src.type() );
rng.fill( noise, RNG::NORMAL, mean, stddev ); // 创建高斯噪声
add( src, noise, dst ); // 将噪声添加到原始图像
}
int main()
{
// 加载一张干净的图像
Mat src = imread( "/media/dingxin/data/study/OpenCV/sources/images/Lenna.png", IMREAD_GRAYSCALE );
if ( src.empty() )
{
cout << "Could not open or find the image!" << endl;
return -1;
}
Mat noisyImage;
addGaussianNoise( src, noisyImage );
imwrite( "noisy_image_1.jpg", noisyImage ); // 保存带噪声的图像
imshow( "Original Image", src );
imshow( "Noisy Image", noisyImage );
waitKey( 0 );
return 0;
}