OpenCV에서는 blur() 함수를 이용하여 평균값 필터링을 수행할 수 있습니다. blur() 함수의 사용법은 다음과 같습니다.
void blur(InputArray src, OutputArray dst, Size ksize, Point anchor = Point(-1,-1), int borderType = BORDER_DEFAULT); |
|
• src |
입력 영상. 다채널 영상은 각 채널별로 블러링을 수행합니다. 입력 영상의 깊이는 CV_8U, CV_16U, CV_16S, CV_32F, CV_64F 중 하나여야 합니다. |
• dst |
출력 영상. src와 같은 크기, 같은 채널 수를 갖습니다. |
• ksize |
블러링 커널 크기 |
• anchor |
고정점 좌표. Point(-1, -1)을 지정하면 커널 중심을 고정점으로 사용합니다. |
• borderType |
가장자리 픽셀 확장 방식 |
blur() 함수는 src 영상에 ksize 크기의 평균값 필터 마스크를 사용하여 dst 출력 영상을 생성합니다. anchor 인자와 borerType 인자는 기본값을 가지고 있으므로 함수 호출 시 생략할 수 있습니다. blur() 함수에서 사용하는 커널은 다음과 같은 형태를 가집니다.
blur() 함수를 사용하여 실제 영상에 블러링을 수행하는 예제 코드를 코드 7-2에 나타냈습니다. 코드 7-2의 blurring_mean() 함수는 3×3, 5×5, 7×7 크기의 평균값 필터를 이용하여 rose.bmp 장미 영상을 부드럽게 변환하고 그 결과를 화면에 출력합니다. blurring_mean() 함수가 정의된 소스 파일과 사용된 영상 파일은 내려받은 예제 파일 중 ch07/blurring 프로젝트에서 확인할 수 있습니다.