图像处理:图像噪声添加

文章目录

  • 前言
  • 一、高斯噪声
  • 二、椒盐噪声
  • 三、泊松噪声
  • 四、斑点噪声
  • 五、指数噪声
  • 六、均匀噪声
  • 总结


前言

本文主要介绍几种添加图像噪声的方法,用于数据增强等操作。
以下图为例。

请添加图片描述

一、高斯噪声

高斯噪声就是给图片添加一个服从高斯分布的噪声,可以通过调节高斯分布标准差(sigma)的大小来控制添加噪声程度,sigma越大添加的噪声越多图片损坏的越厉害。(高斯噪声更像是早期荧幕上的各种小点)

请添加图片描述

def gaussian_noise(image):h, w, c = image.shapemean = 0sigma = 25  # 标准差noise = np.random.normal(mean, sigma, (h, w, c)) #根据均值和标准差生成符合高斯分布的噪声noisy_image = np.clip(image + noise, 0, 255).astype(np.uint8)return noisy_image

二、椒盐噪声

椒盐噪声就是给图片添加黑白噪点,椒指的是黑色的噪点(0,0,0)盐指的是白色的噪点(255,255,255),通过设置amount来控制添加噪声的比例,值越大添加的噪声越多,图像损坏的更加严重

请添加图片描述

def jiaoyan_noise(image):#设置添加椒盐噪声的数目比例s_vs_p = 0.5#设置添加噪声图像像素的数目amount = 0.04noisy_img = np.copy(image)#添加salt噪声num_salt = np.ceil(amount * image.size * s_vs_p)#设置添加噪声的坐标位置coords = [np.random.randint(0,i - 1, int(num_salt)) for i in image.shape]noisy_img[coords[0],coords[1],:] = [255,255,255]#添加pepper噪声num_pepper = np.ceil(amount * image.size * (1. - s_vs_p))#设置添加噪声的坐标位置coords = [np.random.randint(0,i - 1, int(num_pepper)) for i in image.shape]noisy_img[coords[0],coords[1],:] = [0,0,0]#保存图片return noisy_img

三、泊松噪声

图像中的泊松噪声是由于在成像过程中光子的随机性引起的。当光子以不规则的速率到达传感器时,就会在图像中引入泊松噪声。泊松噪声在图像中表现为亮度值的随机变化,尤其在低亮度区域更为显著。这种噪声使得图像中的细节模糊,并且可能干扰图像处理算法和分析。

请添加图片描述

def generate_poisson_noise(img, scale=1.0, gray_noise=False):if gray_noise:img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# round and clip image for counting vals correctlyimg = np.clip((img * 255.0).round(), 0, 255) / 255.vals = len(np.unique(img))vals = 2**np.ceil(np.log2(vals))out = np.float32(np.random.poisson(img * vals) / float(vals))noise = out - imgif gray_noise:noise = np.repeat(noise[:, :, np.newaxis], 3, axis=2)return noise * scaledef random_generate_poisson_noise(img, scale_range=(0, 1.0), gray_prob=0):scale = np.random.uniform(scale_range[0], scale_range[1])if np.random.uniform() < gray_prob:gray_noise = Trueelse:gray_noise = Falsereturn generate_poisson_noise(img, scale, gray_noise)def random_add_poisson_noise(img, scale_range=(0, 1.0), gray_prob=0):noise = random_generate_poisson_noise(img, scale_range, gray_prob)out = img + noisereturn out

四、斑点噪声

斑点噪声是数字图像中常见的一种噪声类型,通常表现为图像中出现随机像素点。这种噪声可能是由于图像传感器故障、信号传输错误或图像存储过程中的错误引起的。

请添加图片描述

def bandian_noise(image):h,w,c = image.shapegauss = np.random.randn(h,w,c)#给图片添加speckle噪声noisy_img = image + image * gauss#归一化图像的像素值noisy_img = np.clip(noisy_img,a_min=0,a_max=255)return noisy_img

五、指数噪声

在图像处理中,指数噪声可能是由于光照条件不稳定、传感器故障或信号传输错误等原因引起的
请添加图片描述

def zhishu_noise(img):a = 10.0noiseExponent = np.random.exponential(scale=a, size=img.shape)imgExponentNoise = img + noiseExponentnoisy_img = np.uint8(cv2.normalize(imgExponentNoise, None, 0, 255, cv2.NORM_MINMAX))  # 归一化为 [0,255]return noisy_img

六、均匀噪声

类似于指数噪声,只不过采样方式不同
请添加图片描述


def uniform_noise(img):mean, sigma = 10, 100a = 2 * mean - np.sqrt(12 * sigma)  # a = -14.64b = 2 * mean + np.sqrt(12 * sigma)  # b = 54.64noiseUniform = np.random.uniform(a, b, img.shape)imgUniformNoise = img + noiseUniformnoisy_img = np.uint8(cv2.normalize(imgUniformNoise, None, 0, 255, cv2.NORM_MINMAX))  # 归一化为 [0,255]return noisy_img

总结

目前主流的噪声添加就这么几种,最常用的是高斯和泊松,在数据增强中还是有很大帮助的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/328085.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

类图及类的关系

类图&#xff08;Class Diagram&#xff09;是UML&#xff08;Unified Modeling Language&#xff0c;统一建模语言&#xff09;中的一种图&#xff0c;用于描述系统中类的静态结构&#xff0c;包括类的属性、方法以及类之间的关系。 一、类 类&#xff08;Class&#xff09;…

vue项目打包后也能配置静态资源路径

根目录public下新建config.json配置文件&#xff0c;如&#xff1a; {"VITE_URL_3DTILES_BIG":"http://192.168.1.1:88/abu1/tW4fYCyXi/tileset.json","VITE_URL_3DTILES_SMALL":"http://192.168.1.1:181/3dtile_200/tileset.json",&…

Linux day6 yum下载,systemctl,

yum命令 yum [-y] install wget 通过yum下载wget小工具 -y的意思是&#xff0c;如果有询问&#xff0c;自动确认&#xff08;总是允许&#xff09;。 yum remove wget 也可以通过这种方式卸载wget

Android:资源的管理,Glide图片加载框架的使用

目录 一&#xff0c;Android资源分类 1.使用res目录下的资源 res目录下资源的使用&#xff1a; 2.使用assets目录下的资源 assets目录下的资源的使用&#xff1a; 二&#xff0c;glide图片加载框架 1.glide简介 2.下载和设置 3.基本用法 4.占位符&#xff08;Placehold…

阿里云域名备案流程

阿里云域名备案流程大致可以分为以下几个步骤&#xff0c;这些信息综合了不同来源的最新流程说明&#xff0c;确保了流程的时效性和准确性&#xff1a; UP贴心的附带了链接&#xff1a; 首次备案流程&#xff1a;ICP首次备案_备案(ICP Filing)-阿里云帮助中心 (aliyun.com) …

护眼 保护眼睛

高度近视600度的我&#xff0c;花了4个月时间度数降了50度&#xff0c;又花了一个多月的时间&#xff0c;双眼50度散光清零了。 然后就有人问我:散光都可以恢复吗&#xff1f; 我有点被问懵了&#xff0c;散光难道不容易恢复吗&#xff1f;直到我在网上查了一下&#xff0c;才发…

深入了解 npm 命令

文章目录 安装 npm初始化项目安装包更新包卸载包查看已安装的包查找包其他常用命令结论 在现代 JavaScript 开发中&#xff0c;npm&#xff08;Node Package Manager&#xff09;是一个不可或缺的工具。它是 Node.js 生态系统的一部分&#xff0c;用于管理 JavaScript 包和依赖…

【保姆级介绍自动化的讲解】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

暗黑4可以搬砖吗?暗黑4怎么搬砖 搬砖攻略

暗黑4可以搬砖吗&#xff1f;暗黑4怎么搬砖 搬砖攻略 暗黑破坏神4属于是暴雪旗下一款经典游戏IP&#xff0c;在全世界有着广泛的玩家群体&#xff0c;更是在今年暴雪国服宣布回归之后&#xff0c;吸引了一大批新玩家加入。今天小编就为大家带来暗黑4的详细搬砖教程。 现在我们…

效率提升80%!苏州金龙国际贸易数字提单试点成功

日前&#xff0c;江苏苏州自贸片区基于星火链网融合型基础设施和通商互信&#xff08;TradeTrust&#xff09;标准的数字提单试点成功&#xff0c;该批数字提单业务为苏州金龙客车对菲律宾的整车出口&#xff0c;由全球最大的集装箱运输公司马士基承运。随着车辆的成功交付&…

vue3专栏项目 -- 三、使用vue-router 和 vuex(下)

一、添加columnDetail 页面 首页有专栏列表&#xff08;ColumnList组件&#xff09;&#xff0c;专栏列表中有很多专栏&#xff0c;然后点击某个专栏就进入专栏详情页&#xff08;ColumnDetail组件&#xff09;&#xff0c;专栏详情页中有很多文章&#xff0c;点击某个文章就进…

51单片机:点亮一个LED灯

1.新建工程 选择AT89C52&#xff0c;在Atmel下显示的是See Microchip 并不需要添加启动文件到文件夹中。 添加main.c文件&#xff0c;c比cpp效率高&#xff0c;.asm汇编即更底层 程序编写好后 nop(); 该函数在这个头文件里面 #include <INTRINS.H> #include <R…

(Java面试题——基础版)JVM、JRE和JDK的关系

JVM Java Virtual Machine是Java虚拟机 &#xff0c;Java程序需要运行在虚拟机上 &#xff0c;不同的平台有自己的虚拟机 &#xff0c;因此Java语言可以 实现跨平台。JVM 负责将 Java 字节码&#xff08;即编译后的 .class 文件&#xff09;翻译成特定平台上的机器码&#xff0…

python数据分析——数据可视化(图形绘制基础)

数据可视化&#xff08;图形绘制基础&#xff09; 前言一、图形绘制基础Matplotlib简介使用过程sin函数示例 二、常用图形绘制折线图的绘制plot示例 散点图的绘制plot示例 柱状图的绘制bar示例 箱型图绘制plot.box示例 饼状图的绘制pie示例 三、图形绘制的组合情况多个折线图的…

Nginx配置文件conf解释

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 Nginx(“engine x”…

(教程)gpt-4o如何使用,怎么体验?gpt-4o和gpt-4-turbo的区别

今天OpenAI发布了gpt-4o&#xff0c;我体验之后&#xff0c;gpt-4o简直逆天了。中文能力也挺别强。速度比现在的gpt4还要快。 早在 5 月 11 日&#xff0c;Sam 就在推文中表示&#xff1a;OpenAI 并没有推出 GPT-5&#xff0c;或搜索引擎&#xff0c;但团队一直在努力研发一些…

Go实现树莓派I2C读取SHT30温度湿度传感器

简介 树莓派其实本身包含很多资源引脚&#xff0c; 合理利用其实可以自制智能家居的一部分&#xff0c;本身硬件和Linux系统等高级语言支持加生态&#xff0c; 不说了&#xff0c; 做就好了… I2C 功能开启 参考之前的文章就可以了 Go实现树莓派读取bh1750光照强度 查看I2C总…

【数据结构】顺序表(一)

✨✨✨专栏&#xff1a;数据结构 &#x1f9d1;‍&#x1f393;个人主页&#xff1a;SWsunlight 不怕别人看不起&#xff0c;就怕自己不争气。路是人走出来的&#xff0c;关键要靠自己闯。振作起来&#xff0c;生活的含义就是前进。 目录 一、顺序表的概念&#xff1a; 二…

【C语言深度解剖】:(11)函数指针、函数指针数组、指向函数指针数组的指针、回调函数

&#x1f921;博客主页&#xff1a;醉竺 &#x1f970;本文专栏&#xff1a;《C语言深度解剖》《精通C指针》 &#x1f63b;欢迎关注&#xff1a;感谢大家的点赞评论关注&#xff0c;祝您学有所成&#xff01; ✨✨&#x1f49c;&#x1f49b;想要学习更多C语言深度解剖点击专栏…

python:rename函数用法

在Pandas库中&#xff0c;rename函数是一个非常实用的方法&#xff0c;用于重命名DataFrame或Series的轴标签&#xff08;如列名或索引&#xff09;。以下是rename函数的基本用法、参数以及一些示例。 1.rename基本语法 DataFrame.rename(mapperNone, indexNone, columnsNone…