반응형
황선규 박사님의 <OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝>, OpenCV 강의를 공부한 내용을 정리했습니다.
블러링(평균값 필터) 적용하기 - cv2.blur
평균 값 필터(Mean filter)는 영상의 특정 좌표 값을 주변 픽셀 값들의 산술 평균으로 설정하는 방법입니다.
픽셀들 간의 그레이스케일 값 변화가 줄어들어 날카로운 에지가 무뎌지고, 영상에 있는 잡음의 영향이 사라지는 효과가 있습니다.
마스크 크기가 커질수록 평균 값 필터 결과가 더욱 부드러워 집니다. 하지만 더 많은 연산량이 필요하게 됩니다.
실제 영상에 평균 값 필터를 적용한 결과
1. OpenCV로 영상에 평균값 필터링 적용하기 - cv2.blur
OpenCV에서는 cv2.blur 함수로 블러링기능을 제공하고 있습니다.
[함수 설명]
cv2.blur(src, ksize, dst=None, anchor=None, borderType=None) -> dst
• src: 입력 영상
• ksize: 평균값 필터 크기. (width, height) 형태의 튜플.
• dst: 결과 영상. 입력 영상과 같은 크기 & 같은 타입.
[예제 코드]
scr = cv2.imread('rose.bmp', cv2.IMREAD_GRAYSCALE)
cv2.imshow('src', src)
# 다양한 크기의 커널을 사용한 평균값 필터링 예제
for ksize in (3, 5, 7):
dst = cv2.blur(src, (kisze, 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.destroyAllWindowns()
[결과]
이처럼 마스크 행렬 크기가 커지면 필터 결과가 더욱 부드러워집니다.
반응형
'Python > 파이썬 OpenCV 공부' 카테고리의 다른 글
[파이썬 OpenCV] 언샤프 마스크 필터를 활용해서 영상에 샤프닝 적용하기 - np.clip, cv2.GaussianBlur (0) | 2020.10.02 |
---|---|
[파이썬 OpenCV] 영상에 블러링(가우시안 필터) 적용하기 - cv2.GaussianBlur (1) | 2020.09.30 |
[파이썬 OpenCV] 영상에 필터링 적용하기 - cv2.filter2D (0) | 2020.09.30 |
[파이썬 OpenCV] 파이썬에서 크로마 키 합성하기 - cv2.inRange(), cv2.copyTo() 활용 (2) | 2020.09.29 |
[파이썬 OpenCV] 히스토그램 역투영을 이용한 살색 영역 검출하기 - cv2.calcBackProject, cv2.calcHist (0) | 2020.09.29 |