본문 바로가기

과목/영상처리

Gaussian Filter 단순 계산을 파이썬으로

가우시안 필터는 가중치가 있는 마스크를 가지고 가중 평균을 구하는 것이다.

f(x,y) = { 1, 2, 4, 5, 2,

3, 6, 6, 9, 0,

1, 8, 3, 7, 2,

2, 9, 8, 9, 9,

3, 9, 8, 8, 7 }


arr = [
[1, 2, 4, 5, 2],
[3, 6, 6, 9, 0],
[1, 8, 3, 7, 2],
[2, 9, 8, 9, 9],
[3, 9, 8, 8, 7]]

for i in range(1,4):
for j in range(1,4):
sum = 0
sum = arr[i-1][j-1] + arr[i-1][j]*2 + arr[i-1][j+1] + arr[i][j-1]*2 + arr[i][j]*4 + arr[i][j+1]*2 + arr[i+1][j-1] + arr[i+1][j]*2 + arr[i+1][j+1]
print(sum/9)

가우시안 마스크?의 값은

1/16 1/8 1/16

1/8 1/4 1/8

1/16 1/8 1/16 이므로


1 2 1

1 4 1

1 2 1 로 바꿔서 적용하면 된다.


결과는

7.888888888888889

10.0

9.222222222222221

9.88888888888889

11.444444444444445

10.777777777777779

11.666666666666666

13.555555555555555

13.333333333333334

이렇게 나오므로

결과는


{1, 2, 4, 5, 2,

 3, 8, 10, 9, 0,

 1, 10, 11, 11, 2,

 2, 12, 14, 13, 9

 3, 9, 8, 8, 7}