2016-09-01 10 views
0
im = imread('peppers.png'); 
noise=randn(size(im)).*1; 
output=double(im)+noise; 

imshow(output); 

を表示それはちょうど私があなたが最初に用いた二重に変換する必要があり、それはガウス雑音

答えて

3

をpeppers.pngの上にいくつかのガウス雑音を示し願う白画像

を示しim2double(ないdouble)、その後、ノイズを追加します。

im = imread('peppers.png'); 
imd = im2double(im); 
noise=randn(size(im)).*0.1; 
output=imd+noise; 
imshow(output); 

enter image description here

これはどうしてですか?

の場合は、uint8と表示されます。タイプuint8の行列に関数doubleを適用しても、値のスケールは変更されませんが、関数のタイプのみが変更されます。

>> im(100,100) 

ans = 

    66 

>> double(im(100,100)) 

ans = 

    66 

そして、チェックの種類:一方

>> class(im) 

ans = 

uint8 

>> class(double(im)) 

ans = 

double 

我々は行列が([0 1]に)再スケーリングされたクラスもdoubleに変更されim2doubleを使用します。

>> imd(100,100) 

ans = 

    0.2588 

>> class(imd) 

ans = 

double 
+0

ありがとう、しかし、これと出力の違いは何ですか?= double(im)+ noise; – william007

+1

@ william007更新を確認してください。 – NKN