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;
}

运行结果

相关推荐
小天才才10 分钟前
【大模型】解耦大语言模型中的记忆与推理能力
人工智能·深度学习·语言模型·自然语言处理
AI大模型学习教程22 分钟前
前端学AI之LangChain.js入门教程:实现智能对话机器人
人工智能·langchain
Java中文社群29 分钟前
超实用!手把手教你Dify版本升级
人工智能·后端
奔跑吧邓邓子1 小时前
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
人工智能·deepseek·无人农场·协同作业·农田管理·神经网
面朝大海,春不暖,花不开1 小时前
Spring AI与Spring Modulith核心技术解析
人工智能·spring·flask
jieshenai1 小时前
Mac M4 芯片运行大模型指南,包括模型微调与推理
人工智能·自然语言处理
爱写代码的小朋友1 小时前
破局与重构:人工智能深度赋能基础教育变革研究
人工智能·重构
聚客AI1 小时前
大厂特邀大咖万字深度穿透:Transformer核心模块实现细节大揭秘
人工智能·神经网络·掘金·日新计划
Blossom.1182 小时前
基于区块链的供应链溯源系统:构建与实践
人工智能·python·深度学习·机器学习·计算机视觉·flask·区块链
音程2 小时前
简单介绍Genetic Algorithms(遗传算法,简称 GA)
人工智能·深度学习·机器学习