더북(TheBook)

영상 처리에서 가우시안 필터란 이러한 2차원 가우시안 함수 값을 이용하여 마스크를 생성하고, 입력 영상과 마스크 연산을 수행하는 것을 의미한다. 원래 가우시안 함수는 연속 함수이지만, 이산형의 마스크를 만들기 위해서 x와 y 값이 정수인 위치에서만 가우시안 함수 값을 추출하여 마스크를 생성한다. 평균이 0이고 표준 편차가 σ인 가우시안 함수는 그 값의 분포가 대부분 -4σ ≤ x, y ≤ 4에서 존재하기 때문에 가우시안 필터 마스크의 크기는 (8σ+1) 형태로 결정할 수 있다. 예를 들어 그림 8-10과 같이 σ=1인 가우시안 함수를 사용할 경우, x의 값이 -4부터 +4까지, y 값도 -4부터 +4까지 존재하는 9×9 크기의 마스크를 생성할 수 있을 것이다. 그러므로 x = {-4,-3,-2,-1,0,1, 2,3, 4}, y = {-4,-3,-2,-1,0,1, 2,3, 4}인 경우에 대해 가우시안 함수 값을 계산하면 그림 8-11과 같은 가우시안 필터 마스크를 생성할 수 있다.

그림 8-11 σ=1인 경우의 가우시안 필터 마스크

0.0000

0.0000

0.0000

0.0000

0.0001

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0002

0.0011

0.0018

0.0011

0.0002

0.0000

0.0000

0.0000

0.0002

0.0029

0. 0131

0.0215

0.0131

0.0029

0.0002

0.0000

0.0000

0.0011

0.0131

0.0585

0.0965

0.0585

0.0131

0.0011

0.0000

0.0001

0.0018

0.0215

0.0965

0.1592

0.0965

0.0215

0.0018

0.0001

0.0000

0.0011

0.0131

0.0585

0.0965

0.0585

0.0131

0.0011

0.0000

0.0000

0.0002

0.0029

0. 0131

0.0215

0.0131

0.0029

0.0002

0.0000

0.0000

0.0000

0.0002

0.0011

0.0018

0.0011

0.0002

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0001

0.0000

0.0000

0.0000

0.0000

앞에서도 잠시 언급했지만, 마스크 연산은 마스크의 크기가 커짐에 따라 그 연산 속도가 급격하게 증가한다. 그림 8-11의 경우, 마스크의 크기가 9×9 크기이기 때문에 결과 영상을 얻는 데 많은 시간을 요구한다. 요즘에는 컴퓨터의 CPU 연산 속도가 매우 빠르기 때문에 9×9 크기의 마스크 연산도 그리 느리게 느껴지지 않을 수도 있지만, 입력 영상의 크기가 커지거나 여러 장의 영상에 대하여 가우시안 필터를 수행해야 하는 경우 실시간 영상 처리 프로그램 구현에 방해가 될 수 있다.

다행히도 2차원 가우시안 함수는 1차원 함수의 곱으로 분할할 수 있기 때문에, 이를 적절하게 이용하면 빠른 가우시안 필터 구현이 가능하다. 다음 수식을 살펴보자.

위 수식에서 2차원 가우시안 함수는 x 방향과 y 방향으로의 1차원 가우시안 함수의 곱으로 분리됨을 볼 수 있다. 이처럼 2차원 마스크를 만드는 함수를 x 방향으로의 함수와 y 방향으로의 함수로 각각 분리할 수 있을 경우, 입력 영상을 x 방향과 y 방향으로의 1차원 마스크 연산을 각각 수행함으로써 결과 영상을 생성할 수 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.