OpenCV给图像添加噪声

  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

如果你已经有了一张干净的图像,并希望通过编程方式向其添加噪声,可以使用 OpenCV 来实现这一点。以下是一个简单的例子,展示如何在现有图像上添加高斯噪声:

cpp 复制代码
#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;
}

运行结果

相关推荐
一点.点28 分钟前
DriveGenVLM:基于视觉-语言模型的自动驾驶真实世界视频生成
论文阅读·人工智能·语言模型·自动驾驶
妄想成为master34 分钟前
深度学习详细入门路线----以本人亲身实践得出
人工智能·深度学习·计算机视觉
martian66539 分钟前
掌握Python编程:从C++/C#/Java开发者到AI与医学影像开发专家
开发语言·人工智能·python·dicom
※DX3906※40 分钟前
小土堆pytorch--神经网路的基本骨架(nn.Module的使用)&卷积操作
人工智能·pytorch·python
kyle~42 分钟前
深度学习---模型预热(Model Warm-Up)
人工智能·深度学习
心灵彼岸-诗和远方1 小时前
芯片生态链深度解析(二):基础设备篇——人类精密制造的“巅峰对决”
人工智能·制造
jndingxin1 小时前
OpenCV CUDA模块中矩阵操作------分布统计类
人工智能·opencv
白熊1881 小时前
【图像大模型】FLUX.1-dev:深度解析与实战指南
人工智能·计算机视觉·文生图
lucky_lyovo2 小时前
机器学习--特征工程具体案例
人工智能·机器学习
EasyDSS2 小时前
国标GB28181视频平台EasyGBS校园监控方案:多场景应用筑牢安全防线,提升管理效能
网络·人工智能·安全