본문 바로가기

과목/영상처리

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

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} 이 된다.