📝이 포스트에서 Average Filter에 대해서 알아보겠습니다.
정의
Average Filter는 필터의 모든 인덱스가 동일한 값을 갖는 단순한 필터입니다.
또한 이미지의 부드러운 효과를 주거나 잡음을 감소시키는 데 사용될 수 있습니다.
Average Filter의 장점
- 계산이 간다하고 효율적이다.
- 해당 픽셀 주변에 잡음(Noise)을 제거해주는 역할을 한다.
Average Filter의 단점
- 중요한 정보를 손실 할 수 있다. 높은 주파수가 평균으로 떨어지거나 낮은 주파수가 평균으로 증가하여 정보를 손실하는 위험이 생긴다.
- 이미지의 선명도가 감소한다.
코드 이해
이를 고려하여 상황을 판단하여 사용하는게 좋습니다.
수식으로는
F[x,y]=filtersize21i=−k∑kj=−k∑kI[x+i,y+j]
와 같습니다.
코드로도 되게 간단하게 구현됩니다.
average_filter3x3 = np.ones((3,3))/(3**2)
919191919191919191
average_filter5x5 = np.ones((5,5))/(5**2)
251251251251251251251251251251251251251251251251251251251251251251251251251
result_average3x3 = Convolution2D(average_filter3x3, image_man)
print("Filtered Image using the 3x3 Average filter")
cv2_imshow(result_average3x3)
result_average5x5 = Convolution2D(average_filter5x5, image_man)
print("Filtered Image using the 5x5 Average filter")
cv2_imshow(result_average5x5)
결과🖨️
위 사진들을 비교해보면 알 수 있듯이 필터의 크기가 증가함에 따라 이미지의 중요한 정보가 손실되고 blurring 효과가 증가함을 확인할 수 있습니다.
저도 개발자인데 같이 교류 많이 해봐요 ㅎㅎ! 서로 화이팅합시다!