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

运行结果

相关推荐
XIAO·宝1 小时前
深度学习------专题《图像处理项目》终!
人工智能·深度学习
Nautiluss1 小时前
WIN7下安装RTX3050 6GB显卡驱动
人工智能·驱动开发·opencv
wwww.bo2 小时前
深度学习(5)完整版
人工智能·深度学习
yourkin6663 小时前
什么是神经网络?
人工智能·深度学习·神经网络
嘀咕博客3 小时前
Frames:Runway推出的AI图像生成模型,提供前所未有的风格控制和视觉一致性
人工智能·ai工具
isNotNullX4 小时前
ETL详解:从核心流程到典型应用场景
大数据·数据仓库·人工智能·架构·etl
科技峰行者4 小时前
通义万相2.5系列模型发布,可生成音画同步视频
人工智能·阿里云·ai·大模型·agi
Vizio<4 小时前
《面向物理交互任务的触觉传感阵列仿真》2020AIM论文解读
论文阅读·人工智能·机器人·机器人触觉
尤超宇5 小时前
基于卷积神经网络的 CIFAR-10 图像分类实验报告
人工智能·分类·cnn
alex1005 小时前
BeaverTails数据集:大模型安全对齐的关键资源与实战应用
人工智能·算法·安全