mean 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 }
이 행렬을 3x3 마스크를 가지고 평균 필터링 한다.
마스크의 원소는 모두 1이며 계수는 1/9이다.
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] + arr[i-1][j+1] + arr[i][j-1] + arr[i][j] + arr[i][j+1] + arr[i+1][j-1] + arr[i+1][j] + arr[i+1][j+1]
print(sum/9)
3.7777777777777777
5.555555555555555
4.222222222222222
5.111111111111111
7.222222222222222
5.888888888888889
5.666666666666667
7.666666666666667
6.777777777777778
이러한 결과가 나오므로 반올림을 해주면, 맞는지 모르겠지만
{1, 2, 4, 5, 2,
3, 4, 6, 4, 0,
1, 5, 7, 6, 2,
2, 6, 8, 7, 9
3, 9, 8, 8, 7} 이 된다.
'과목 > 영상처리' 카테고리의 다른 글
Low Pass Filter 저주파 통과 필터 (0) | 2018.04.19 |
---|---|
Gaussian Filter 단순 계산을 파이썬으로 (0) | 2018.04.19 |
Median Filter 단순 계산을 파이썬으로 (0) | 2018.04.18 |