renrj 发表于 2006-12-21 13:37

matlab中如何给图像加噪

matlab中图像加噪的函数是:imnoise(image,type,parameters);但所加噪声类型只有'gaussian','localvar','poisson','salt & pepper','speckle'。我现在想给一幅图像加均匀噪声,另一幅加乘性噪声,应该怎么做?拜托了!

yukeyyxh 发表于 2006-12-21 17:40

'speckle'   就是乘性噪声

至于均匀噪声建议 找到imnoise.m 文件,读懂了改一下就行!

eight 发表于 2006-12-22 11:09

原帖由 renrj 于 2006-12-21 13:37 发表
matlab中图像加噪的函数是:imnoise(image,type,parameters);但所加噪声类型只有'gaussian','localvar','poisson','salt & pepper','speckle'。我现在想给一幅图像加均匀噪声,另一幅加乘性噪声,应 ...


手动添加吧,用rand函数,具体参见精华贴

renrj 发表于 2006-12-22 16:19

谢谢yukeyyxh ,and 八!昨天一直打不开网页,我先去学习学习eight的精华

renrj 发表于 2006-12-22 16:32

'speckle' 用的是方程 J = I + n*I,请问一下,乘性噪声的定义就是这样还是有别的?比如说,我的原图是x,现在用方程y=a*x+b来给x加噪,其中a,b均为零均值且方差不同的高斯噪声,a为乘性部分,b为加性部分,这个时候应该怎么加?

renrj 发表于 2006-12-24 12:20

看了看imnoise的代码,写了一段乘性噪声的代码,大家帮忙看看有没有什么问题
function b=MyMultiNoise(varargin)
a =varargin{1};
p1=varargin{2};
p2=varargin{3};
p3=varargin{4};
p4=varargin{5};
sizeA = size(a);
y1 =sqrt(p2)*randn(sizeA) + p1;
y2 =sqrt(p4)*randn(sizeA) + p3;
b =y1*a+y2;
页: [1]
查看完整版本: matlab中如何给图像加噪