0
im = imread('peppers.png');
noise=randn(size(im)).*1;
output=double(im)+noise;
imshow(output);
它只是顯示一個白色圖像顯示高斯噪聲
我希望它顯示peppers.png
im = imread('peppers.png');
noise=randn(size(im)).*1;
output=double(im)+noise;
imshow(output);
它只是顯示一個白色圖像顯示高斯噪聲
我希望它顯示peppers.png
的頂部一些高斯噪聲你應該先使用轉換倍增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
謝謝,但這和output = double(im)+ noise有什麼不同? – william007
@ william007檢查更新。 – NKN