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

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

运行结果

在这里插入图片描述


http://www.kler.cn/a/565543.html

相关文章:

  • Express + MongoDB 实现用户登出
  • DDD 架构之领域驱动设计【通俗易懂】
  • 从零开始用react + tailwindcs + express + mongodb实现一个聊天程序(二)
  • 【洛谷贪心算法题】P1094纪念品分组
  • 10分钟熟练掌握宝兰德中间件部署 iServer
  • Starrocks入门(二)
  • 深度剖析 Video-RAG:厦门大学和罗切斯特大学联合推出的一种用于长视频理解的检索增强生成技术
  • 基于大数据的音乐网站数据分析与可视化推荐系统
  • HTML邮件的制作以及遇到的问题
  • Qt常用控件之多行输入框QTextEdit
  • RabbitMQ系列(四)基本概念之Exchange
  • 行为型模式 - 职责链模式 (Chain of Responsibility Pattern)
  • 我与Swagger-UI的量子纠缠:SpringBoot3.x中的薛定谔404事件——解决`springdoc-openapi:2.8.5`UI界面显示问题
  • 【Python pro】函数
  • redis密码设置
  • 如何实现某短视频平台批量作品ID的作品详情采集
  • PySide(PyQT)重新定义contextMenuEvent()实现鼠标右键弹出菜单
  • 销售易NeoCRM与八骏科技CRM:全方位深度对比
  • 浅聊RocketMQ 分布式事务解决方案原理
  • Spock框架:让单元测试更优雅的高效武器