과목/영상처리
Gaussian Filter 단순 계산을 파이썬으로
원펀만
2018. 4. 19. 00:07
가우시안 필터는 가중치가 있는 마스크를 가지고 가중 평균을 구하는 것이다.
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}