各位大师,有没知道如何给一幅图像不同视数的加上乘性噪声(Speckle)?目的是用来仿真SAR图像。

各位大师,有没知道如何给一幅图像不同视数的加上乘性噪声(Speckle)?目的是用来仿真SAR图像。,第1张

我在二区论文中找到了写法:

主函数:

names = {'lena512.bmp'}%{'house.png' 'napoli.png' 'hill.png' ‘lena512.bmp’}

B = 1% n. of bands,产生几个时间的数据

range = [0 255] % dynamic range

L=8

idx_name = 1:length(names)

% true image

x_true = double( imread(names{idx_name}) )

x_true(x_true<1) = 1

x_true = repmat(x_true, [1 1 B])

% noisy image

rng('default')

x_noisy = x_true .* Rayleigh_noise( size(x_true), L )%幅度域

figureimshow( x_noisy(:,:,1), [0 255])title(['Simulated SAR image with L=' num2str(L)])

figureimshow( x_noisy(:,:,2), [0 255])title(['Simulated SAR image with L=' num2str(L)])

I=uint8(x_noisy(:,:,1))

imwrite(I,'lenanoise8.jpg')%将图像存入硬盘

子函数:

function noise = Rayleigh_noise(sz, L)

% make sure that 'sz' is a 3-length vector

if length(sz) == 2

sz(3) = 1

end

% noise generation

%s = randn([sz 2*L])%在幅度域产生高斯噪声,瑞丽噪声???

s = randn([sz 2*L])%在幅度域产生高斯噪声,瑞丽噪声??? Y = randn([m n])返回一个m*n的正态分布随机项矩阵。

s = mean(s.^2, 4)%,第三维是产生几幅,第四维是视数,在强度域取平均进行多视处理

noise = sqrt(s)%重新取为幅度域

关于origin怎么给数据加噪声相关资料如下

打开origin

image:输入图像数据,类型应为ndarray,输入后将转换为浮点数。

mode:选择添加噪声的类别。字符串str类型。应为以下几种之一:

mode 噪声类型 备注

gaussian 高斯噪声

localvar 高斯白噪声 在“图像”的每个点处具有指定的局部方差

poisson 泊松分布噪声

salt 盐噪声 随机用1替换像素。属于高灰度噪声

pepper 胡椒噪声 随机用0或-1替换像素,属于低灰度噪声

s&p 椒盐噪声

speckle 使用image + n*image的乘性噪声 n是具有指定均值和方差的均匀噪声

seed :类型为int。 将在生成噪声之前设置随机种子,以进行有效的伪随机比较。

clip:类型为bool。若为True(default)则在加入‘speckle’, ‘poisson’, 或 ‘gaussian’这三种噪声后进行剪切以保证图像数据点都在[0,1]或[-1.1]之间。若为False,则数据可能超出这个范围。

mean:类型为float。 表示随机分布的均值,用于‘gaussian’和‘speckle’,默认为0。

var: 类型为float。 表示随机分布的方差,(标准差^2)用于’gaussian’和‘speckle’。 默认为0.01。

local_vars:类型为ndarray。表示图像每个像素点处的局部方差,正浮点数矩阵,和图像同型,用于‘localvar’。

amount:类型为float。表示 椒盐噪声像素点替换的比例,在[0,1]之间。用于‘salt’, ‘pepper’,和 ‘salt &pepper’. 默认为0.05

salt_vs_pepper:类型为float。表示盐噪声和胡椒噪声的比例,在[0,1]之间。数字越大代表用1替换越多(more salt). 默认 为 0.5

输出(返回值)out:类型为ndarray。

首先图像最少是二维的,图像有是有长宽两个属性组成的矩阵。一维信号是向量.

MATLAB 给图像添加噪声的命令为

imnoise

该函数的基本语法为:

g=imnoise(f,type,parameters)

f为是输入图像。函数imnoise在给图像添加噪声之前,将它转换为范围[0,1]内的double类图像。指定噪声参数时必须考虑到这一点。

g=imnoise(f,'gaussian',m,var)将均值M,方差为var的高斯噪声加到图像f上,默认值为均值是0,方差是0.01的噪声。

g=imnoise(f,'localvar',V)将均值为0,局部方差为V的高斯噪声添加到图像f上,其中V是与f大小相同的一个数组,它包含了每一个点的理想方差值。

g=imnoise(f,'localvar',image_intensity,var)将

均值为0的高斯噪声添加到图像f中,其中噪声的局部方差var是图像f的亮度值的函数。参量image_intensity和var是大小相同的向

量,plot(image_intensity,var)绘制出噪声方差和图像亮度的函数关系。向量image_intensity必须包含范围在

[0,1]内的归一化亮度值。

g=imnoise(f,'salt&pepper',d)用椒盐噪声污染图像f,其中d是噪声密度(即包括噪声值的图像区域的百分比)。因此,大约有d*numel(f)个像素受到影响。默认的噪声密度为0.05。

g=imnoise(f,'speckle',var)用方程g=f+n*f)将乘性噪声添加到图像f上,其中n是均值为0,方差为var的均匀分布的随机噪声,var的默认值是0.04。

g=imnoise(f,'poisson')从数据中生成泊松噪声,而不是将人工的噪声添加

到数据中,为了遵守泊松统计,unit8和unit16类图像的亮度必须和光子的数量相符合。当每个像素的光子数量大于65535时,就要使用双精度图像。亮度值在0到1之间变化,并且对应于光子的数量除以10e12。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11959261.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存