개발자 끄적끄적
영상 복원 본문
<영상복원>
- 영상 복원은 영상을 획득하는 과정에서 발생되는 열화(화질의 저하)를 방지하거나 감소시키는 처리를 의미한다
이러한 화질의 저하는 화소의 값에 오차를 발생하는 잡음을 포함하고, 초점의 흐림 또는 카메라의 움직임에 의한
떨림 현상과 같은 광학적 오차를 포함한다
<영상의 열화 모델>
- 공간영역에서, 영상 f(x, y)와 공간필터 h(x, y)가 회선처리에 의해 어떤 결과 영상 g(x,y)를 생각하자
만일 h(x,y)가 라인형태로 구성된다면 회선처리의 결과는 라인방향으로 움직이는 흐림이 생긴다
g(x,y) = f(x,y)*h(x,y)
여기서 *는 회선을 표시한다
그러나 모두가 그런 것은 아니며, 회선처리에 부가되는 함수로 모델화 될 수 있는 잡음을 고려해야한다
따라서 발생 가능한 불규칙한 오차를 n(x,y)로 표현하면, 열화 영상은
g(x,y) = f(x,y)*h(x,y)+n(x,y)
<잡음>
- 외부의 교란에 의해 영상신호의 열화를 초래하는 잡음을 정의해보자
영상이 한 곳에서 다른 곳으로 전자적으로 전송되는 경우, 즉 위성을 거치거나 무선 전송 혹은 유선망을 통해
전송되는 경우, 영상신호에 오차를 일으킬 가능성이 많다
<salt and pepper(깨소금) 잡음>
- 임펄스잡음, shot잡음, 이진화잡음 또는 깨소금 잡음 이라고 하며,
이는 영상신호에서 예리하고 급작스러운 교란으로 영상 전반에 걸쳐 black and white로 불규칙하게 퍼져서 나타난다
<가우시안 잡음>
- 이상적인 백색잡음으로서 신호에 불규칙한 요동으로 나타난다
가우시안 잡음은 정규분포를 가지는 백색잡음이다
영상을 I로, 가우시안잡음을 N으로 표현하면 간단히 이 2개의 신호를 합하면 잡음이 첨가된 영상을 아래와 같이 모델화할 수 있다
I+N
여기서 I는 영상의 각 화소들의 값을 나타내는 매트릭스이고, N은 각 요소들이 정규분포를 가지는 매트릭스라고 가정한다
이 표현은 잡음에 대한 적절한 모델이라 할 수 있다
imnoise 함수로서 이 효과를 아래와 같이 얻을 수 있다
>>t_ga=imnoise(t, 'gaussian');
<가우시안 잡음의 제거>
- 영상의 평균
- 가우시안 잡음에 오염된 단 하나의 영상이 아니고 다수의 사본을 가지는 경우가 있다
예를 들면 하나의 위성이 통과하는 퀘도에서 동일한 장소에서 여러번 촬용한 위성 영상이라던가
하나의 물체에 대해 여러번 찍은 현미경사진 등이 이에 속한다
이러한 경우에 가우시안잡음을 제거하는 방법은 모든 영상들을 평균하는 것이다
- M' = (1/100)시그마i=1~100까지 (M(원본영상)+Ni(노이즈가 포함된 영상)
<반점잡음(speckle noise)>
- 가우시안 잡음은 영상에 단순히 불규칙한 값으로 첨가되는 모델이지만, 반점잡음은 화소 값에 불규칙한 값이 곱해지는 모델로 적용될 수 있다
따라서 이를 mltiplicative noise라고도 한다
반점잡음은 레이다의 응용에 주로 문제가 된다
>>t_spk=imnosie(t, 'speckle');
I+N
여기서 I는 영상 매트릭스이고, N은 평균치가 0인 정규분포를 가진다
선택 파라메터는 N의 분산이고, 디폴트 값은 0.04이다
<깨소금잡음의 제거>
- 저역통과 필터
- 깨소금잡음으로 오염된 화소들은 영상의 고주파성분이므로 저역통과 필터를 사용한다.
평균하는 필터를 아래와 같이 이용할 수 있다
>>a3=fspecial('average');
>>t_sp_a3=filter2(a3, t_sp);
<미디언 필터링(median filtering)>
- 미디언을 얻는 원리는, 잡음이 섞인 값이 매우 크거나 매우 작으므로 sorting된 리스트에서 처음이나 끝이 있다고 가정하여
일반적으로 중간 값을 취하여 출력하는 것
>>t_sp_m3=medfilt2(t_sp);