Main Content

deconvwnr

위너 필터를 사용하여 영상 디블러 처리

설명

예제

J = deconvwnr(I,psf,nsr)은 위너 필터 알고리즘을 사용하여 영상 I를 디컨벌루션하고 디블러 처리된 영상 J를 반환합니다. psfI를 컨벌루션할 때 사용한 PSF(점 확산 함수)입니다. nsr은 가산성 잡음의 잡음 대 신호 전력비입니다. 이 알고리즘은 추정된 영상과 실제 영상 사이의 평균제곱오차를 최소화한다는 점에서 적합합니다.

J = deconvwnr(I,psf,ncorr,icorr)은 영상 I를 디컨벌루션합니다. 여기서 ncorr은 잡음의 자기상관 함수, icorr은 원본 영상의 자기상관 함수입니다.

J = deconvwnr(I,psf)는 추정된 잡음 없이 위너 필터 알고리즘을 사용하여 영상 I를 디컨벌루션합니다. 잡음이 없을 때 위너 필터는 이상적인 역필터에 해당합니다.

예제

모두 축소

영상을 작업 공간으로 읽어 들인 후 이를 표시합니다.

I = im2double(imread('cameraman.tif'));
imshow(I);
title('Original Image (courtesy of MIT)');

Figure contains an axes object. The axes object with title Original Image (courtesy of MIT) contains an object of type image.

모션 블러를 시뮬레이션합니다.

LEN = 21;
THETA = 11;
PSF = fspecial('motion', LEN, THETA);
blurred = imfilter(I, PSF, 'conv', 'circular');
figure, imshow(blurred)

Figure contains an axes object. The axes object contains an object of type image.

가산성 잡음을 시뮬레이션합니다.

noise_mean = 0;
noise_var = 0.0001;
blurred_noisy = imnoise(blurred, 'gaussian', ...
                        noise_mean, noise_var);
figure, imshow(blurred_noisy)
title('Simulate Blur and Noise')

Figure contains an axes object. The axes object with title Simulate Blur and Noise contains an object of type image.

잡음이 없다고 가정하고 복원해 보십시오.

estimated_nsr = 0;
wnr2 = deconvwnr(blurred_noisy, PSF, estimated_nsr);
figure, imshow(wnr2)
title('Restoration of Blurred, Noisy Image Using NSR = 0')

Figure contains an axes object. The axes object with title Restoration of Blurred, Noisy Image Using NSR = 0 contains an object of type image.

더 나은 잡음 대 신호 전력비 추정값을 사용하여 복원해 보십시오.

estimated_nsr = noise_var / var(I(:));
wnr3 = deconvwnr(blurred_noisy, PSF, estimated_nsr);
figure, imshow(wnr3)
title('Restoration of Blurred, Noisy Image Using Estimated NSR');

Figure contains an axes object. The axes object with title Restoration of Blurred, Noisy Image Using Estimated NSR contains an object of type image.

입력 인수

모두 축소

흐릿한 영상으로, 임의 차원의 숫자형 배열로 지정됩니다.

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

점 확산 함수로, 숫자형 배열로 지정됩니다.

데이터형: double

잡음 대 신호비로, 음이 아닌 스칼라 또는 영상 I와 같은 크기의 숫자형 배열로 지정됩니다. nsr이 배열인 경우 스펙트럼 영역을 나타냅니다. nsr에 대해 0을 지정하면 이상적인 역필터를 생성하는 것과 같습니다.

데이터형: double

잡음의 자기상관 함수로, 원본 영상을 초과하지 않는 임의의 크기 또는 임의의 차원의 숫자형 배열로 지정됩니다.

  • ncorr의 차원 수가 영상 I의 차원 수와 일치할 경우 이 값은 각 차원 내의 자기상관에 해당합니다.

  • ncorr이 벡터이고 psf도 벡터인 경우 ncorr의 값은 첫 번째 차원의 자기상관 함수를 나타냅니다.

  • ncorr이 벡터이고 psf는 배열인 경우 1차원 자기상관 함수는 psf의 모든 비한원소 차원에 대칭 외삽됩니다.

  • ncorr이 스칼라인 경우 이 값은 잡음의 전력을 나타냅니다.

데이터형: double

영상의 자기상관 함수로, 원본 영상을 초과하지 않는 임의의 크기 또는 임의의 차원의 숫자형 배열로 지정됩니다.

  • icorr의 차원 수가 영상 I의 차원 수와 일치할 경우 이 값은 각 차원 내의 자기상관에 해당합니다.

  • icorr이 벡터이고 psf도 벡터인 경우 icorr의 값은 첫 번째 차원의 자기상관 함수를 나타냅니다.

  • icorr이 벡터이고 psf는 배열인 경우 1차원 자기상관 함수는 psf의 모든 비한원소 차원에 대칭 외삽됩니다.

  • icorr이 스칼라인 경우 이 값은 영상의 전력을 나타냅니다.

데이터형: double

출력 인수

모두 축소

디블러 처리된 영상으로, 숫자형 배열로 반환됩니다. J의 데이터형이 I와 같습니다.

  • 출력 영상 J에는 알고리즘에서 사용되는 이산 푸리에 변환으로 인해 발생하는 링잉 현상이 존재할 수 있습니다. 링잉 현상을 줄이려면 deconvwnr을 호출하기 전에 I = edgetaper(I,psf)를 사용하십시오.

참고 문헌

[1] Gonzalez, R. C., and R. E. Woods. Digital Image Processing. Addison-Wesley Publishing Company, Inc., 1992.

버전 내역

R2006a 이전에 개발됨