当前位置: 首页 > news >正文

OpenCV给图像添加噪声

  • 操作系统: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;
}

运行结果

在这里插入图片描述

相关文章:

  • 每日一题之铠甲合体
  • 代码随想录day21
  • 哈希表的复习
  • 25全国各省自考报名时间汇总⏰照片要求✅
  • 【附源码】基于opencv+pyqt5搭建的人脸识别系统
  • Golang 构建学习
  • 涉密载体管控系统革新:RFID技术引领,信息安全新境界
  • 《全星质量管理 QMS 软件系统》:赋能企业高效质量管理
  • javascript如何通过原型链实现对象的继承,并指出这种继承方式的优缺点
  • ViT 模型介绍(三)——简单实战项目
  • ctfshow做题笔记—栈溢出—pwn57~pwn60
  • 【硬件设计】DDR与HBM的功能、区别及未来发展分析
  • Deepseek本地部署小实践(c盘)
  • Ollama+Cherrystudio+beg-m3+Deepseek R1 32b部署本地私人知识库(2025年2月win11版)
  • 论文复现7:VoxPoser复现
  • 分析 w-form-multiple-image.vue 文件中 console.log(v) 打印的内容
  • Javascript元编程
  • Redis要点总结一
  • 嵌入式八股文,c语言实现strcpy
  • macbook电脑下载,安装和配置java的jdk 1.8步骤
  • 网站建设组织架构/网络营销的类型
  • 网站开发需求单/成都黑帽seo
  • 现在搭建一个网站需要多少钱/给公司做网站的公司
  • 有源码就可以自己做H5网站吗/怎样推广产品
  • 徐州网站开发/视频网站建设
  • 做企业网站前期需要准备什么/seo技巧与技术