(1)J = imnoise(I,type)
(2)J = imnoise(I,type,parameters)
其中I为原图象的灰度矩阵,J为加噪声后图象的灰度矩阵
一般情况下用(1)中表示即可,(2)中表示是允许修改参数,
而(1)中使用缺省参数
至于type可有五种,分别为'gaussian'(高斯白噪声),'localvar'
(与图象灰度值有关的零均值高斯白噪声),'poisson'(泊松噪声),
'salt &pepper'(椒盐噪声)和'speckle'(斑点噪声)
具体(2)中参数值的设定可根据个人需要
其余情况以及若还有不懂请参考Matlab帮助文件。
比如说:
I=imread('image.bmp')
J=imnoise(I,'salt &pepper')
imshow(J)
以上程序就表示把原图像加入椒盐噪声,但注意要把图像和以上程序的M文件放在同一个子目录下;
这回应该明白了吧?
可以使用如下的函数实现R = normrnd(MU,SIGMA) (生成均值为 MU,标准差为 SIGMA 的正态随机数)
R = normrnd(MU,SIGMA,m) (生成 1× m 个正态随机数)
R = normrnd(MU,SIGMA,m,n) (生成 m 行 n 列的 m × n 个正态随机数)
假设输入信号为X,则给X加上一个均值为0,方差为1的高斯白噪声信号的方法为
Y=X+normrnd(0,1)
% 设置采样区间
k=(0:300)'/100
% 计算采样值
x=sin(2*pi*k)
% 施加高斯白噪声
y=awgn(x,0)
figure(1)
% 设置绘图位置,左下角距屏幕左200像素,下200像素,宽800像素,高300像素
set(gcf,'Position',[200,200,800,300])
% 绘图网格1*2,左图绘制原始信号,右图绘制噪声信号
subplot(1,2,1),plot(k,x)
subplot(1,2,2),plot(k,y)
给图像添加噪声的⽅法(补充ing)1.随机修改⼀部分像素点的灰度值为指定值def noise(img,proportion=0.05):
'''
随机的修改⼀定数量像素点的灰度值
:param img:
:param proportion: 噪声点占全部像素点的⽐例
:return:
第 1 页
'''
height,width =img.shape[:2]
num = int(height*width*proportion)#多少个像素点添加噪声
for k in range(0, num):
# get the random point
xi = int(np.random.uniform(0, img.shape[1]))
xj = int(np.random.uniform(0, img.shape[0]))
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)