filter2D() 함수는 src 영상에 kernel 필터를 이용하여 필터링을 수행하고, 그 결과를 dst에 저장합니다. 만약 src 인자와 dst 인자에 같은 변수를 지정하면 필터링 결과를 입력 영상에 덮어쓰게 됩니다. filter2D() 함수가 수행하는 연산을 수식으로 표현하면 다음과 같습니다.
filter2D() 함수 인자 중에서 ddepth는 결과 영상의 깊이를 지정하는 용도로 사용하며, 입력 영상 깊이에 따라 지정할 수 있는 ddepth 값을 표 7-2에 나타냈습니다. 만약 ddepth에 -1을 지정하면 출력 영상의 깊이는 입력 영상과 같게 설정됩니다.
▼ 표 7-2 입력 영상의 깊이에 따라 지정 가능한 ddepth 값
입력 영상의 깊이(src.depth()) |
지정 가능한 ddepth 값 |
CV_8U |
-1/CV_16S/CV_32F/CV_64F |
CV_16U/CV_16S |
-1/CV_32F/CV_64F |
CV_32F |
-1/CV_32F/CV_64F |
CV_64F |
-1/CV_64F |
filter2D() 함수에서 anchor, delta, borderType 인자는 기본값을 가지고 있기 때문에 생략할 수 있습니다. anchor 인자는 커널 행렬에서 고정점으로 사용할 좌표이며, 기본값인 Point(-1, -1)을 지정하면 커널 행렬 중심 좌표를 고정점으로 사용합니다. delta 인자에는 필터링 연산 후 결과 영상에 추가적으로 더할 값을 지정할 수 있으며, 기본값은 0입니다. borderType 인자에는 앞서 표 7-1에 나타낸 BorderTypes 열거형 상수 중 하나를 지정할 수 있습니다.