2016-09-01 6 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 인 행렬에 함수 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