im = imread('peppers.png');
noise=randn(size(im)).*1;
output=double(im)+noise;
imshow(output);
它只显示白色图像
我希望它在peppers.png
之上显示一些高斯噪音答案 0 :(得分:3)
您应首先使用im2double
(不是double
)转换为加倍,然后添加噪音:
im = imread('peppers.png');
imd = im2double(im);
noise=randn(size(im)).*0.1;
output=imd+noise;
imshow(output);
为什么会这样?
如果您检查im
变量的类型,您会看到它是uint8
。将函数double
应用于类型为uint8
的矩阵不会重新调整值,但只会更改函数的类型。
>> im(100,100)
ans =
66
>> double(im(100,100))
ans =
66
检查类型:
>> class(im)
ans =
uint8
>> class(double(im))
ans =
double
另一方面,当我们使用im2double
时,矩阵会重新调整(到[0 1]
)并且类也会更改为double
:
>> imd(100,100)
ans =
0.2588
>> class(imd)
ans =
double