要在图像上应用二维高斯滤波器,只需先在横向线条上应用一维高斯滤波器(过滤水平方向的频率),然后在纵向线条上应用另一个一维高斯滤波器(过滤垂直方向的频率)。这是因为,高斯滤波器是一种可分离滤波器(也就是说,二维内核可分解成两个一维滤波器)。要应用普通的可分离滤波器,可使用 cv::sepFilter2D 函数。也可以用 cv::filter2D 函数直接应用二维内核。由于可分离滤波器所用的乘法运算更少,因此它的计算速度通常比不可分离滤波器要快。
在 OpenCV 中,若要对图像应用高斯滤波器,需要调用函数 cv::GaussianBlur,并且提供系数的个数(第三个参数,必须是奇数)和 σ 的值(第四个参数)。也可以只设置 σ 的值,由 OpenCV 决定系数的个数(输入滤波器尺寸的值为 0)。反过来也可以,即输入参数时提供尺寸的数值,σ 值为 0。函数会自行判断最适合尺寸的 σ 值。