Python从零到壹丨详解图像平滑的两种非线性滤波方法

时间:2020-12-31 00:51:43
摘要:本文将详细讲解两种非线性滤波方法中值滤波和双边滤波。

本文分享自华为云社区《[Python从零到壹] 五十六.图像增强及运算篇之图像平滑(中值滤波、双边滤波)》,作者: eastmount 。

一.中值滤波

前面讲述的都是线性平滑滤波,它们的中间像素值都是由邻域像素值线性加权得到的,接下来将讲解一种非线性平滑滤波——中值滤波。中值滤波通过计算每一个像素点某邻域范围内所有像素点灰度值的中值,来替换该像素点的灰度值,从而让周围的像素值更接近真实情况,消除孤立的噪声。

中值滤波对脉冲噪声有良好的滤除作用,特别是在滤除噪声的同时,能够保护图像的边缘和细节,使之不被模糊处理,这些优良特性是线性滤波方法所不具有的,从而使其常常被应用于消除图像中的椒盐噪声[1-2]。

中值滤波算法的计算过程如图1所示。选择含有五个点的窗口,依次扫描该窗口中的像素,每个像素点所对应的灰度值按照升序或降序排列,然后获取最中间的值来替换该点的灰度值。

Python从零到壹丨详解图像平滑的两种非线性滤波方法