Gauss Filter

1 개요

Gauss Filter 알고리즘은 Gauss 함수를 사용하여 이미지 Smoothing을 수행하는 알고리즘입니다.

2 알고리즘 상세 설명

G(x,y)=12πσxσye(x22σx2+y22σy2)G(x,y) = \frac{1}{2 \pi {\sigma_{x}}{\sigma_{y}}} e^{-( \frac{x^{2}}{2 {\sigma_{x}}^2} + \frac{y^{2}}{2 {\sigma_{y}}^2})}

입력 받은 σ\sigma 값에 해당하는 Gauss 함수를 사용하여 이미지 Smoothing을 수행하며 6σ6 \sigma 에 가까운 Kernel 크기가 자동으로 설정됩니다.

입력 이미지 결과 이미지 확대 이미지
Noise Image Gauss Filter Result Crop
Fig. Gauss Filter 동작 예시

위의 예시는 σ=0.8\sigma = 0.8 을 적용한 예시입니다.

CGaussFilter gaussFilter;

CFLImage fliSourceImage;
gaussFilter.SetSourceImage(fliSourceImage);

gaussFilter.SetSigma(0.8);

gaussFilter.Execute();
CGaussFilter gaussFilter = new CGaussFilter();

CFLImage fliSourceImage = new CFLImage();
gaussFilter.SetSourceImage(ref fliSourceImage);

gaussFilter.SetSigma(0.8);

gaussFilter.Execute();
gaussFilter = CGaussFilter()

fliSourceImage = CFLImage()
gaussFilter.SetSourceImage(fliSourceImage)

gaussFilter.SetSigma(0.8)

gaussFilter.Execute()

3 파라미터 설정 및 사용 방법

멤버함수 파라미터 설 명
SetKernelSize int32_t i32KernelSize IN Kernel Size
GetKernelSize int32_t i32KernelSize OUT Kernel Size

Gauss Filter 의 Kernel Size 를 직접 입력하거나 접근합니다. 해당 값이 0인 경우, 설정된 σ\sigma 에 의해 Kernel Size 가 결정됩니다.

멤버함수 파라미터 설 명
SetSigma double f64Sigma IN Sigma of Gauss Func.
GetSigma double f64Sigma OUT Sigma of Gauss Func.

Gauss Filter 의 Kernel Size는 6σ6 \sigma 보다 같거나 큰 홀수로 결정됩니다. 예를 들어 σ\sigma = 0.5 인 경우 Kernel Size 는 3x3 이 되며, σ\sigma = 1 인 경우 Kernel Size 는 7x7 이 됩니다. 계산된 Kernel Size 가 같아도 σ\sigma 값이 다른 경우 Kernel 전체 Weight 값에 변동이 발생하므로 차이가 발생할 수 있습니다.

f64Sigma - Default Value : 0.5, Recommended Value : 0.5 ~ 1.5

멤버함수 파라미터 설 명
SetSigmaY double f64SigmaY IN Sigma of Gauss Func. in the Y Direction
GetSigmaY double f64SigmaY OUT Sigma of Gauss Func. in the Y Direction

Gauss Filter 의 y 방향 σy\sigma_{y} 값을 설정하거나 접근합니다. 해당 값이 0 인 경우, σx\sigma_{x} 와 동일한 값을 갖습니다.