在matlab上,怎么给这个图片加高斯噪声呢,加入的是均值为0、方差0.008的高斯噪声。 实在不会呀。。

在matlab上,怎么给这个图片加高斯噪声呢,加入的是均值为0、方差0.008的高斯噪声。 实在不会呀。。,第1张

clc

clear

all

close

all

A

=

imread('cameraman.tif')

%

读入图像

imshow(A)title('原图')

V=0.008

Noisy=imnoise(A,‘gaussian’,0,V)

figure1

imshow(Noisy)%添加均值为0、方差0.008的高斯噪声

y_mask

=

[-1

-1

-10

0

01

1

1]

%

建立Y方向的模板

x_mask

=

y_mask'

%

建立X方向的模板

I

=

im2double(A)

%

将图像数据转化为双精度

dx

=

imfilter(I,

x_mask)

%

计算X方向的梯度分量

dy

=

imfilter(I,

y_mask)

%

计算Y方向的梯度分量

grad

=

sqrt(dx.*dx

+

dy.*dy)

%

计算梯度

grad

=

mat2gray(grad)

%

将梯度矩阵转换为灰度图像

level

=

graythresh(grad)

%

计算灰度阈值

BW

=

im2bw(grad,level)

%

用阈值分割梯度图像

figure,

imshow(BW)

%

显示分割后的图像即边缘图像

title('Prewitt')

就是这样了。

可以使用如下的函数实现

r

=

normrnd(mu,sigma)

(生成均值为

mu,标准差为

sigma

的正态随机数)

r

=

normrnd(mu,sigma,m)

(生成

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)


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

原文地址:https://54852.com/bake/11649738.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存