OpenCV低通滤波器

OpenCV低通滤波器,本文将介绍几种非常基本的低通滤波器。这种滤波器的目的是减少图像变化的幅度。要做到这点,一个简单的方法是把每个像素的值替换成它周围像素的平均值。这样一来,强度的快速变化会被消除,取而代之的是更加平滑的过渡。

如何实现

cv::blur函数将每个像素的值替换成该像素邻域的平均值(邻域是矩形的),从而使图像更加平滑。这个低通滤波器的用法如下所示:

cv::blur(image, result, cv::Size(5,5)); // 滤波器尺寸

这种滤波器也称为块滤波器(box filter)。为了让效果更加明显,这里使用尺寸为5×5的滤波器。这是原始图像。

OpenCV低通滤波器
这是使用滤波器后得到的结果。

OpenCV低通滤波器

有时需要让邻域内较近的像素具有更高的重要度。因此可计算加权平均值,即较近的像素比较远的像素具有更大的权重。要得到加权平均值,可采用依据高斯函数(即“钟形曲线”函数)制定的加权策略。函数cv::GaussianBlur应用了这种滤波器,调用方法如下所示:

cv::GaussianBlur(image, result,
                 cv::Size(5,5), // 滤波器尺寸
                 1.5);          // 控制高斯曲线形状的参数

得到的结果如下所示。
OpenCV低通滤波器

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!