为了账号安全,请及时绑定邮箱和手机立即绑定

向图像添加像素级独立噪声

向图像添加像素级独立噪声

跃然一笑 2021-11-23 19:25:50
我的问题很简单:我有一个图像,我想为图像添加像素级独立噪声。噪声可以来自任何分布,例如高斯分布。numpy/scikit-learn 中有哪些可用模块可以做同样的事情?我没有任何代码,但我正在学习 numpy.random.normal 等模块,我需要更多说明。没有一个模块明确说明如果我从一个分布中多次抽取样本,抽取将是独立的。谢谢你的建议。
查看完整描述

2 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

您有多种选择。如果您想使用替换随机采样,只需使用 numpy 的内置随机模块之一(即 numpy.random.random)。您还可以使用 numpy.random.pareto 来获得更戏剧性/突发性的噪音。这些方法生成独立样本。

如果您有一个集合或数组形式的分布,您想从中提取样本而不重复(例如,您有一个数组 [0.1, 0.3, 0.9] 并且只想用这些值生成噪声),则可以使用 python 的内置 random.random.choice([0.1, 0.3, 0.9]) 从您的自定义分布中抽取独立样本。您还可以指定replace=False.


查看完整回答
反对 回复 2021-11-23
?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

是的,随机意味着独立。您可以使用 numpy/scipy 生成噪声并将其添加到图像中。或许学习本教程 对你有好处,

//img1.sycdn.imooc.com//619ccfdd0001fde314640589.jpg

代码如下:


import numpy as np

import matplotlib.pylab as plt


#--- data -----

a = 1

xi, yi = np.linspace(-a,a,nx), np.linspace(-a,a,ny)

x, y = np.meshgrid(xi,yi)    # 2-dimensional grid

U = np.exp(-x*x - y*y)       # picture/signal

V = np.random.randn(nx, ny)  # random noise


#--- grafics -----

fig = plt.figure(figsize=(22,11)) 

ax1 = fig.add_subplot(131)

ax1.imshow(U)

ax2 = fig.add_subplot(132)

ax2.imshow(V)

ax3 = fig.add_subplot(133)

ax3.imshow(U+0.2*V)

plt.show()

fig.savefig('signal_noise.png', transparency=True)


查看完整回答
反对 回复 2021-11-23
  • 2 回答
  • 0 关注
  • 539 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号