我试图通过下面的代码,将高斯噪声添加到RGB或灰度图像中,但到目前为止,我遇到了同样的问题,结果总是如下所示:
我写的代码有问题吗?
def gauss(mean,sigma):
from random import uniform
from math import sqrt,log,pi,cos
a=uniform(0,1)
b=uniform(0,1)
x=sqrt(-2*log(a))*cos(2*pi*b)
return(x)
def bruiter(image):
from matplotlib.pyplot import imread
if len(image.shape)==3 :
a,b,c=image.shape
for i in range(a):
for j in range(b):
image[i][j] += [gauss(0.5,0.01),gauss(0.5,0.01),gauss(0.5,0.01)]
elif len(image.shape)==2 :
a,b= image.shape
for i in range(a):
for j in range(b):
image[i][j] += gauss(0.01)*(1/255)
return(image)
感谢马蒂诺先生指出我应该回答噪音而不是模糊的问题。我会再回答枕头的问题,因为我觉得它更简单。
我打开一张麝鼠爪子的图片,显示图像大小和位置(50,50)的像素值。这是一个RGB图像,我们可以相当肯定,每种颜色可以从0到255。
我想你需要加性高斯噪声。为了省去编写和调试生成器的麻烦,我使用了一个现成的生成器,
normalvariate
。您将需要改变噪声的级别和传播;因此,我制作了平均值和比例参数。因为颜色值的范围有限制,所以我使用max
和min
。为了方便起见,我将对add_noise_one_pixel
中的add_noise
的三个调用打包,以便可以对图像中的每个像素调用后一个例程一次。您将已经注意到,图像中的所有像素都可以通过使用图像大小和
getpixel
方法来寻址。我没有检查过这个密码。它更多的是作为原则的说明。
旧答案:
如果你只是想做这件事而不是关心做这件事的细节,那么就看看枕头。就这么简单。
相关问题 更多 >
编程相关推荐