Main Content

영상 디블러 처리

영상이 흐릿해지거나 화질이 저하되는 경우는 다음과 같은 여러 요인으로 인해 발생할 수 있습니다.

  • 카메라로 영상을 촬영하는 도중 움직임이 있거나 피사체의 노출 시간이 길 경우

  • 광학 초점이 맞지 않거나, 광각 렌즈를 사용하거나, 대기 흔들림이 있거나, 노출 시간이 짧아서 캡처된 광자 수가 적어진 경우

  • 공초점 현미경에서 산란광 왜곡이 발생한 경우

흐릿한 영상 또는 화질이 저하된 영상은 방정식 g = Hf + n으로 대략적으로 기술될 수 있습니다.

g

흐릿한 영상

H

PSF(점 확산 함수)라고도 하는 왜곡 연산자. 공간 영역에서, PSF는 광학 시스템이 광점을 흐릿하게 만드는(확산하는) 정도를 기술합니다. PSF는 OTF(광학 전달 함수)의 푸리에 역변환입니다. 주파수 영역에서, OTF는 임펄스에 대한 선형 위치 불변 시스템의 응답을 기술합니다. OTF는 PSF(점 확산 함수)의 푸리에 변환입니다. 왜곡 연산자가 영상과 컨벌루션되면 왜곡이 생성됩니다. 점 확산 함수로 인해 발생하는 왜곡은 왜곡의 한 가지 유형에 불과합니다.

f

실제 원본 영상

참고

영상 f는 실제로 존재하지 않습니다. 이 영상은 완벽한 영상 수집 조건이 있었다면 얻을 수 있는 영상을 나타냅니다.

N

영상 수집 과정에서 더해져서 영상을 손상시키는 가산 잡음

이 모델을 기반으로 했을 때, 디블러 처리의 기본 작업은 흐릿한 영상을 왜곡을 정확히 기술하는 PSF로 디컨벌루션하는 것입니다. 디컨벌루션이란 컨벌루션의 효과를 반전하는 과정입니다.

참고

디블러 처리된 영상의 품질은 주로 PSF에 대한 지식으로 결정됩니다.

이를 살펴보기 위해 이 예제에서는 선명한 영상을 PSF와 컨벌루션하여 고의로 흐릿하게 만듭니다. 예제에서는 fspecial 함수를 사용해 모션 블러를 시뮬레이션하는 PSF를 만들며, 이때 블러의 길이는 픽셀 단위로 지정하고(LEN=31) 블러의 각도를 도 단위로 지정합니다(THETA=11). PSF를 만든 후에는 imfilter 함수를 사용해 PSF를 원본 영상 I와 컨벌루션하여 흐릿한 영상 Blurred를 만듭니다. 동일한 영상을 사용하여 디블러 처리가 이 프로세스의 반전임을 보려면 위너 필터(Wiener Filter)를 사용하여 영상 디블러 처리하기 항목을 참조하십시오.

I = imread('peppers.png');
I = I(60+[1:256],222+[1:256],:); % crop the image
figure; imshow(I); title('Original Image');

LEN = 31;
THETA = 11;
PSF = fspecial('motion',LEN,THETA); % create PSF
Blurred = imfilter(I,PSF,'circular','conv');
figure; imshow(Blurred); title('Blurred Image');

디블러 처리 함수

이 툴박스는 4개의 디블러 처리 함수를 포함하며, 아래에 복잡도 순으로 나와 있습니다. 모든 함수는 PSF와 흐릿한 영상을 기본 인수로 받습니다.

deconvwnr

최소제곱해를 구현합니다. 디블러 처리 중에 잠재적인 잡음 증폭을 줄이려면 잡음에 대한 얼마간의 정보를 제공해야 합니다. 자세한 내용은 위너 필터(Wiener Filter)를 사용하여 영상 디블러 처리하기 항목을 참조하십시오.

deconvreg

제약된 최소제곱해를 구현합니다. 제약 조건은 출력 영상에 적용할 수 있습니다(매끄러움 요구 사항이 디폴트 값임). 디블러 처리 중에 잠재적인 잡음 증폭을 줄이려면 잡음에 대한 얼마간의 정보를 제공해야 합니다. 자세한 내용은 Deblur Images Using a Regularized Filter 항목을 참조하십시오.

deconvlucy

감쇠를 고려한 고속 Lucy-Richardson 알고리즘을 구현합니다. 이 함수는 최적화 기법과 푸아송 통계량을 사용하여 여러 번의 반복을 수행합니다. 손상된 영상의 가산 잡음에 대한 정보를 제공할 필요가 없습니다. 자세한 내용은 Adapt the Lucy-Richardson Deconvolution for Various Image Distortions 항목을 참조하십시오.

deconvblind

PSF에 대한 지식 없이 디블러 처리를 수행하는 블라인드 디컨벌루션 알고리즘을 구현합니다. 인수에 PSF에 대한 초기 추측값을 전달합니다. deconvblind 함수는 복원된 영상에 더해 복원된 PSF를 반환합니다. 구현에서는 deconvlucy 함수와 동일한 감쇠 및 반복 모델을 사용합니다. 자세한 내용은 Adapt Blind Deconvolution for Various Image Distortions 항목을 참조하십시오.

디블러 처리 함수를 사용할 때는 다음 사항에 주의하십시오.

  • 디블러 처리에는 반복 수행이 필요합니다. 주어진 제한적인 정보를 기반으로 원본 장면의 최적 근사인 영상을 얻을 때까지 각 반복에서 디블러 처리 함수에 지정하는 파라미터를 달리하며 디블러 처리 과정을 여러 번 반복해야 할 수 있습니다. 이 과정에서 영상에서 새로 발견된 특징이 원본 장면의 특징인지 아니면 단순히 디블러 처리의 아티팩트인지를 여러 번 판단해야 합니다.

  • 디블러 처리된 영상에서 "링잉 현상"을 방지하려면 영상을 디블러 처리 함수에 전달하기 전에 edgetaper 함수를 사용하여 영상을 전처리할 수 있습니다. 자세한 내용은 Avoid Ringing in Deblurred Images 항목을 참조하십시오.

  • 사용자만의 고유한 디블러 처리 함수를 만드는 방법에 대한 자세한 내용은 Create Your Own Deblurring Functions 항목을 참조하십시오.