中值滤波器属于非线性滤波器,其响应基于滤波器所在区域像素的排序中值来决定,中值滤波器对椒盐噪声有比较优秀的降噪能力,同时相比于线性平滑滤波器对图像的模糊程度小很多
中值滤波器计算过程为,对图像某点执行中值滤波,首先要对邻域内像素进行排序,确定它们的中值,并将中值赋值给滤波后的中心像素,例如在一个 $3 \times 3$ 滤波器中,中值是第5大的值,在$5 \times 5$滤波器中,中值是第13大的值
下面以被椒盐噪声污染的电路板图像为例,展示中值滤波的效果
1 | import numpy as np |
读取原始图像并显示
1 | im = cv.imread('images/01.tif', 0) |
进行中值滤波处理
1 | im_k3 = median_filtering(im, 3) |