이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

deconvblind

블라인드 디컨벌루션을 사용하여 영상 디블러 처리

설명

[J,psfr] = deconvblind(I,psfi)는 최대가능도 알고리즘과 점 확산 함수(PSF)의 초기 추정값 psfi를 사용하여 영상 I를 디컨벌루션합니다. deconvblind 함수는 디블러 처리된 영상 J와 복원된 PSF인 psfr을 모두 반환합니다.

복원 성능을 개선하기 위해 deconvblind는 아래에서 설명하는 몇 가지 선택적 파라미터를 지원합니다. 중간 파라미터를 지정하지 않을 경우 []을 자리 표시자로 사용하십시오.

[J,psfr] = deconvblind(I,psfi,iter)은 반복 횟수 iter을 지정합니다.

[J,psfr] = deconvblind(I,psfi,iter,dampar)은 감쇠 임계값 dampar로 지정된 잡음과 비교했을 때 벗어나는 정도가 적은 픽셀에 대해 반복을 억제함으로써 잡음 증폭을 제어합니다. 기본적으로, 감쇠가 발생하지 않습니다.

예제

[J,psfr] = deconvblind(I,psfi,iter,dampar,weight)는 입력 영상 I에서 어떤 픽셀이 복원에 고려될지 지정합니다. weight 배열의 요소의 값은 입력 영상에서 대응되는 위치에 있는 픽셀이 얼마만큼 복원에 고려될지 결정합니다. 예를 들어, 특정 픽셀이 고려되지 않도록 하려면 weight 배열에서 해당 픽셀의 값을 0으로 할당하십시오. 각 픽셀에 할당할 가중치 값을 플랫 필드 보정의 양에 따라 조정할 수 있습니다.

[J,psfr] = deconvblind(I,psfi,iter,dampar,weight,readout)은 카메라 판독 잡음의 가산성 잡음(예: 배경 잡음, 전경 잡음)과 분산 readout을 지정합니다.

[J,psfr] = deconvblind(___,fun)에서 fun은 PSF에 대한 추가 제약 조건을 설명하는 함수에 대한 핸들입니다. fun은 각 반복의 끝에서 호출됩니다. 함수 핸들에 대한 자세한 내용은 함수 핸들 생성하기 (MATLAB) 항목을 참조하십시오.

예제

모두 축소

잡음이 있는 샘플 영상을 만듭니다.

% Set the random number generator back to its default settings for
% consistency in results.
rng default;

I = checkerboard(8);
PSF = fspecial('gaussian',7,10);
V = .0001;
BlurredNoisy = imnoise(imfilter(I,PSF),'gaussian',0,V);

처리에 포함시킬 픽셀을 지정하는 가중치 배열을 만듭니다.

WT = zeros(size(I));
WT(5:end-4,5:end-4) = 1;
INITPSF = ones(size(PSF));

블라인드 디컨벌루션을 수행합니다.

[J P] = deconvblind(BlurredNoisy,INITPSF,20,10*sqrt(V),WT);

결과를 표시합니다.

subplot(221);imshow(BlurredNoisy);
title('A = Blurred and Noisy');
subplot(222);imshow(PSF,[]);
title('True PSF');
subplot(223);imshow(J);
title('Deblurred Image');
subplot(224);imshow(P,[]);
title('Recovered PSF');

입력 인수

모두 축소

흐릿한 영상으로, 임의 차원의 숫자형 배열로 지정됩니다. 영상을 셀형 배열로 지정해 중단된 반복을 활성화할 수도 있습니다. 자세한 내용은 항목을 참조하십시오.

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

PSF의 초기 추정값으로, 숫자형 배열로 지정됩니다. PSF 복원은 초기 추측값 psfi에 의해 영향을 크게 받으며, 여기에 포함된 값에 의해서는 영향을 덜 받습니다. 이러한 이유로, psfi1로 구성된 배열로 지정하십시오.

psfi를 셀형 배열로 지정해 중단된 반복을 활성화할 수도 있습니다. 자세한 내용은 항목을 참조하십시오.

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

반복 횟수로, 양의 정수로 지정됩니다.

데이터형: double

감쇠 임계값으로, 숫자형 스칼라로 지정됩니다. 감쇠는 반복 간의 편차가 임계값보다 작은 픽셀에 대해 발생합니다. damparI와 데이터형이 동일합니다.

각 픽셀의 가중치 값으로, [0, 1] 범위의 값으로 구성된 숫자형 배열로 지정됩니다. weight는 입력 영상 I와 크기가 동일합니다. 기본적으로, weight의 모든 요소는 값 1을 가지므로 복원에서 모든 픽셀이 동일하게 고려됩니다.

데이터형: double

잡음으로, 숫자형 스칼라 또는 숫자형 배열로 지정됩니다. readout의 값은 카메라 판독 잡음의 가산성 잡음(예: 전경 및 배경에서 발생하는 잡음)과 분산에 해당합니다. readoutI와 데이터형이 동일합니다.

함수 핸들로, 핸들로 지정됩니다. fun은 첫 번째 인수로 PSF를 받아야 합니다. 함수는 하나의 인수를 반환해야 하는데 이는 원본 PSF와 크기가 동일하며 양부호 및 정규화 제약 조건을 충족하는 PSF여야 합니다.

출력 인수

모두 축소

디블러 처리된 영상으로, 숫자형 배열 또는 1x4 셀형 배열로 반환됩니다. J(또는 J가 셀형 배열인 경우 J{1})는 I와 데이터형이 동일합니다. 중단된 반복에 대해 J를 셀형 배열로 반환하는 방법에 대한 자세한 내용은 항목을 참조하십시오.

복원된 PSF로, 양수로 구성된 배열 또는 1x4 셀형 배열로 반환됩니다. psfr은 PSF의 초기 추정값 psfi와 크기가 동일하고, 요소의 합이 1이 되도록 정규화됩니다. 중단된 반복에 대해 psfr를 셀형 배열로 반환하는 방법에 대한 자세한 내용은 항목을 참조하십시오.

데이터형: double

  • deconvblind를 사용하여, 이전 디컨벌루션이 중지된 지점부터 시작하는 디컨벌루션을 수행할 수 있습니다. 이 기능을 사용하려면 입력 영상 I와 PSF에서의 초기 추측값 psfi를 셀형 배열 {I}{psfi}로 전달하십시오. 이렇게 하면 deconvblind 함수는 출력 영상 J와 복원된 점 확산 함수 psfr을 셀형 배열로 반환하며, 이 셀형 배열은 다음번 deconvblind 호출에 입력 배열로 전달할 수 있습니다. 출력 셀형 배열 J는 다음과 같은 4개의 요소를 포함합니다.

    J{1}은 원본 영상 I를 포함합니다.

    J{2}는 마지막 반복의 결과를 포함합니다.

    J{3}은 마지막에서 두 번째 반복의 결과를 포함합니다.

    J{4}는 반복 알고리즘에 의해 생성되는 배열입니다.

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

참고 문헌

[1] D.S.C. Biggs and M. Andrews, Acceleration of iterative image restoration algorithms, Applied Optics, Vol. 36, No. 8, 1997.

[2] R.J. Hanisch, R.L. White, and R.L. Gilliland, Deconvolutions of Hubble Space Telescope Images and Spectra, Deconvolution of Images and Spectra, Ed. P.A. Jansson, 2nd ed., Academic Press, CA, 1997.

[3] Timothy J. Holmes, et al, Light Microscopic Images Reconstructed by Maximum Likelihood Deconvolution, Handbook of Biological Confocal Microscopy, Ed. James B. Pawley, Plenum Press, New York, 1995.

R2006a 이전에 개발됨