OpenCV低通滤波器,本文将介绍几种非常基本的低通滤波器。这种滤波器的目的是减少图像变化的幅度。要做到这点,一个简单的方法是把每个像素的值替换成它周围像素的平均值。这样一来,强度的快速变化会被消除,取而代之的是更加平滑的过渡。
如何实现
cv::blur
函数将每个像素的值替换成该像素邻域的平均值(邻域是矩形的),从而使图像更加平滑。这个低通滤波器的用法如下所示:
cv::blur(image, result, cv::Size(5,5)); // 滤波器尺寸
这种滤波器也称为块滤波器(box filter)。为了让效果更加明显,这里使用尺寸为5×5
的滤波器。这是原始图像。
这是使用滤波器后得到的结果。
有时需要让邻域内较近的像素具有更高的重要度。因此可计算加权平均值,即较近的像素比较远的像素具有更大的权重。要得到加权平均值,可采用依据高斯函数(即“钟形曲线”函数)制定的加权策略。函数cv::GaussianBlur应用了这种滤波器,调用方法如下所示:
cv::GaussianBlur(image, result,
cv::Size(5,5), // 滤波器尺寸
1.5); // 控制高斯曲线形状的参数
得到的结果如下所示。
酷客网相关文章:
评论前必须登录!
注册