Main Content

wiener2

2차원 적응형 잡음 제거 필터링

구문 wiener2(I,[m n],[mblock nblock],noise)는 제거되었습니다. 대신 wiener2(I,[m n],noise) 구문을 사용하십시오.

설명

J = wiener2(I,[m n],noise)는 픽셀별 적응형 저역통과 위너 필터를 사용하여 회색조 영상 I를 필터링합니다. [m n]은 영상의 국소 평균 및 표준편차를 추정하는 데 사용되는 이웃의 크기(m×n)를 지정합니다. 가산성 잡음(가우스 백색 잡음)의 전력은 noise로 간주됩니다.

입력 영상은 정전력 가산성 잡음에 의해 저하되었습니다. wiener2는 각 픽셀의 국소 이웃으로부터 추정한 통계량을 바탕으로 픽셀별 적응형 위너 방법을 사용합니다.

예제

[J,noise_out] = wiener2(I,[m n])wiener2가 필터링을 수행하기 전에 계산하는 가산성 잡음 전력의 추정값을 반환합니다.

예제

모두 축소

이 예제에서는 wiener2 함수를 사용하여 영상에 위너 필터(선형 필터의 일종)를 적절히 적용하는 방법을 보여줍니다. 위너 필터는 자체적으로 국소 영상 분산에 맞게 조정됩니다. 분산이 큰 경우, wiener2는 평활화를 감소시킵니다. 분산이 작은 경우, wiener2는 평활화를 증가시킵니다.

이러한 접근 방식 덕분에 일반적으로 선형 필터링보다 더 나은 결과를 얻게 됩니다. 적응 필터는 선형 필터보다 더 선택적으로 필터링하여 영상의 경계 및 다른 고주파수 부분을 보존합니다. 또한 설계 작업이 없습니다. wiener2 함수는 모든 예비 계산을 처리한 후 입력 영상에 필터를 적용합니다. 그러나 wiener2는 선형 필터링보다 계산 시간이 오래 걸립니다.

wiener2는 가우스 잡음처럼 전력이 일정한("백색") 가산성 잡음일 때 가장 효과적입니다. 아래 예제에서는 가우스 잡음이 추가된 토성 영상에 wiener2를 적용합니다.

영상을 작업 공간으로 읽어 들입니다.

RGB = imread('saturn.png');

트루컬러 영상을 회색조 영상으로 변환합니다.

I = im2gray(RGB);

영상에 가우스 잡음을 추가합니다.

J = imnoise(I,'gaussian',0,0.025);

잡음이 있는 영상을 표시합니다. 영상이 매우 크기 때문에 영상의 일부만 표시합니다.

imshow(J(600:1000,1:600));
title('Portion of the Image with Added Gaussian Noise');

Figure contains an axes object. The axes object with title Portion of the Image with Added Gaussian Noise contains an object of type image.

wiener2 함수를 사용하여 잡음을 제거합니다.

K = wiener2(J,[5 5]);

처리된 영상을 표시합니다. 영상이 매우 크기 때문에 영상의 일부만 표시합니다.

figure
imshow(K(600:1000,1:600));
title('Portion of the Image with Noise Removed by Wiener Filter');

Figure contains an axes object. The axes object with title Portion of the Image with Noise Removed by Wiener Filter contains an object of type image.

입력 인수

모두 축소

입력 영상으로, 2차원 숫자형 배열로 지정됩니다.

데이터형: single | double | int16 | uint8 | uint16

이웃 크기로, [m n] 형식의 요소를 2개 가진 벡터로 지정됩니다. 여기서 m은 행 개수이고 n은 열 개수입니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

가산성 잡음으로, 숫자형 배열로 지정됩니다. 잡음을 지정하지 않을 경우 wiener2는 국소 분산의 평균 mean2(localVar)을 사용합니다.

데이터형: single | double

출력 인수

모두 축소

필터링된 영상으로, 입력 영상 I와 크기 및 데이터형이 같은 숫자형 배열로 반환됩니다.

가산성 잡음 전력의 추정값으로, 숫자형 배열로 반환됩니다.

알고리즘

wiener2는 각 픽셀 주위의 국소 평균과 분산을 추정합니다.

μ=1NMn1,n2ηa(n1,n2)

σ2=1NMn1,n2ηa2(n1,n2)μ2,

여기서 η는 영상 A에 있는 각 픽셀의 N×M 국소 이웃입니다. 그런 다음 wiener2는 다음과 같은 추정값을 사용하여 픽셀별 위너 필터를 만듭니다.

b(n1,n2)=μ+σ2ν2σ2(a(n1,n2)μ),

여기서 ν2은 잡음 분산입니다. 잡음 분산이 주어지지 않을 경우 wiener2는 모든 국소 분산 추정값의 평균을 사용합니다.

참고 문헌

[1] Lim, Jae S. Two-Dimensional Signal and Image Processing, Englewood Cliffs, NJ, Prentice Hall, 1990, p. 548, equations 9.44, 9.45, and 9.46.

확장 기능

버전 내역

R2006a 이전에 개발됨

모두 확장