在学习图像滤波中了解到图像滤波具有可分离性,首先理解可分离滤波的概念:可分离性指的是先对X(Y)方向滤波,再对Y(X)方向滤波的结果与将两个方向联合滤波器的整体滤波结果相同。
两个滤波器的联合就是将两个方向的滤波器相乘,一个是一维行向量,一个是一维列向量,相乘得到的是一个矩阵滤波器即联合滤波器。
如果在使用filter2D()函数进行滤波前计算联合滤波器,需要调用两次的filter2D函数,实现起来比较冗杂。故在OpenCV4中提供了sepFilter2D()滤波函数,此函数可以输入两个方向的滤波器。
官方给出的函数原型为:
void cv::sepFilter2D(InputArray src,
OutputArray dst,
int ddepth,
InputArray kernelX,
InputArray kernelY,
Point anchor = Point(-1,-1),
double delta = 0,
int borderType = BORDER_DEFAULT
)
参数详解如下:
- src:待滤波图像
- dst:输出图像,与输入图像src具有相同的尺寸、通道数和数据类型。
- ddepthÿ