- 평균 값 필터 (Mean filter)
- 영상의 특정 좌표 값을 주변 픽셀 값들의 산술 평균으로 설정
- 픽셀들 간의 그레이스케일 값 변화가 줄어들어 날카로운 에지가 무뎌지고, 영상에 있는 잡음의 영향이 사라지는 효과
- 실제 영상에 평균 값 필터를 적용한 결과
- filter2D() 함수를 이용한 평균값 필터링 예제
import sys
import numpy as np
import cv2
src=cv2.imread('rose.bmp',cv2.IMREAD_GRAYSCALE)
if src is None:
print('Image load failed!')
sys.exit()
# kernel=np.array([[1/9,1/9,1/9,],[1/9,1/9,1/9,],[1/9,1/9,1/9,]],dtype=np.float32)
kernel=np.ones((3,3),dtype=np.float64)/9.
dst=cv2.filter2D(src,-1,kernel)
cv2.imshow('src',src)
cv2.imshow('dst',dst)
cv2.waitKey()
cv2.destroyAllWindows()
- 평균 값 필터링 함수
cv2.blur(src,ksize,dst=None,anchor=None,borderType=None) -> dst
• src: 입력 영상
• ksize: 평균값 필터 크기. (width, height) 형태의 튜플.
• dst: 결과 영상. 입력 영상과 같은 크기 & 같은 타입.
- 다양한 크기의 커널을 사용한 평균값 필터링 예제
import sys
import numpy as np
import cv2
src = cv2.imread('rose.bmp', cv2.IMREAD_GRAYSCALE)
if src is None:
print('Image load failed!')
sys.exit()
cv2.imshow('src', src)
for ksize in (3, 5, 7):
dst = cv2.blur(src, (ksize, ksize))
desc = 'Mean: {}x{}'.format(ksize, ksize)
cv2.putText(dst, desc, (10, 30), cv2.FONT_HERSHEY_SIMPLEX,
1.0, 255, 1, cv2.LINE_AA)
cv2.imshow('dst', dst)
cv2.waitKey()
cv2.destroyAllWindows()
'Computer Vision > opencv(python)' 카테고리의 다른 글
[24] 4)샤프닝: 언샤프 마스크 필터 (0) | 2021.03.19 |
---|---|
[23] 3)블러링 - 가우시안 필터 (0) | 2021.03.19 |
[21] 4.필터링 1)필터링 이해하기 (0) | 2021.03.19 |
[20] 크로마키 합성 (0) | 2021.03.18 |
[19] 8)히스토그램 역투영 (0) | 2021.03.18 |