주요 콘텐츠

deconvwnr

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

설명

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

예제

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

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

예제

모두 축소

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

im = imread("cameraman.tif");
imageshow(im)

카메라 움직임 때문에 생길 수 있는 흐릿한 영상을 시뮬레이션합니다. 먼저 fspecial 함수에 11도 각도로 21개 픽셀을 포괄하는 직선적 움직임을 지정하여 점 확산 함수 PSF를 만듭니다. 그런 다음 imfilter를 사용하여 영상에 점 확산 함수를 컨벌루션합니다. 양자화 오차를 줄이려면 imfilter 호출에 앞서 영상을 double형으로 변환하십시오.

len = 21;
theta = 11;
PSF = fspecial("motion",len,theta);
im = im2double(im);
imBlurred = imfilter(im,PSF,"conv","circular");

시뮬레이션된 가우스 잡음을 흐릿한 영상에 추가합니다.

noise_mean = 0;
noise_var = 0.0001;
imBlurredNoisy = imnoise(imBlurred,"gaussian",noise_mean,noise_var);

잡음 있는 흐릿한 영상을 표시합니다.

imageshow(imBlurredNoisy)

잡음 대 신호 전력비 추정값을 사용하여 영상을 복원합니다.

estimated_nsr = noise_var / var(imBlurredNoisy(:));
wnr3 = deconvwnr(imBlurredNoisy,PSF,estimated_nsr);
imageshow(wnr3)

입력 인수

모두 축소

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

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

점 확산 함수로, 숫자형 배열로 지정됩니다. psf의 차원은 I의 차원보다 작거나 같아야 합니다. psf의 크기는 각 차원에서 I의 크기보다 작거나 같아야 합니다.

데이터형: 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 이전에 개발됨