더북(TheBook)

먼저 Gσs(||p-q||) 함수는 두 점 사이의 거리에 대한 가우시안 함수로서, 앞서 7.2.2절에서 설명한 가우시안 필터와 완전히 같은 의미로 동작합니다. 반면에 Gσr(|fp-fq|) 함수는 두 점의 픽셀 값 차이에 의한 가우시안 함수입니다. Gσr(|fp-fq|) 함수는 두 점의 픽셀 밝기 값의 차이가 적은 평탄한 영역에서는 큰 가중치를 갖게 만듭니다. 반면에 에지를 사이에 두고 있는 두 픽셀에 대해서는 |fp-fq| 값이 크게 나타나므로 상대적으로 Gσr(|fp-fq|)는 거의 0에 가까운 값이 됩니다. 이로 인해 에지 근방에서는 가우시안 블러링 효과가 거의 나타나지 않고 에지가 보존됩니다.

양방항 필터 수식이 픽셀 값의 차이에 의존적이기 때문에 양방향 필터 마스크는 영상의 모든 픽셀에서 서로 다른 형태를 갖게 됩니다. 즉, 모든 픽셀 위치에서 주변 픽셀과의 밝기 차이에 의한 고유의 필터 마스크 행렬을 만들어서 마스크 연산을 수행해야 합니다. 이는 일반적인 가우시안 블러링이 모든 위치에서 일정한 가우시안 마스크 행렬을 사용하는 것과 차이가 있습니다. 그러므로 양방향 필터는 가우시안 블러링보다 훨씬 많은 연산량을 필요로 합니다.

OpenCV에서는 bilateralFilter() 함수를 이용하여 양방향 필터를 수행할 수 있습니다. bilateralFilter() 함수 원형은 다음과 같습니다.

void bilateralFilter(InputArray src, OutputArray dst, int d,
                     double sigmaColor, double sigmaSpace,
                     int borderType = BORDER_DEFAULT);

src

입력 영상. 8비트 또는 실수형, 1채널 또는 3채널 영상

dst

출력 영상. src와 같은 크기, 같은 타입을 갖습니다.

d

필터링에 사용할 이웃 픽셀과의 거리(지름). 양수가 아닌 값(예를 들어 -1)을 지정하면 sigmaSpace로부터 자동 계산됩니다.

sigmaColor

색 공간에서의 가우시안 필터 표준 편차

sigmaSpace

좌표 공간에서의 가우시안 필터 표준 편차

borderType

가장자리 픽셀 확장 방식

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