上一篇写完了mean_image均值滤波,这篇来写median_image中值滤波。
问题分析
这些噪声信号降低图像的质量、细节和对比度,从而影响图像的观感和可用性。
算子介绍:使用不同的掩模计算中值滤波器。
算子本体:median_image(Image : ImageMedian : MaskType, Radius, Margin : )
参数解释:median_image(输入图像: 输出图像: 滤波器形状, 尺寸, 边界处理方式: )
eg.median_image (ImageEmphasize, ImageMedian, ‘circle’, 1, ‘mirrored’)
中值滤波的原理和均值滤波其实差不多,不同的是,中值滤波以像素为中心,取一个指定形状的领域作为滤波器,可以使正方向也可以是圆形,然后将该区域内的像素灰度值进行排序,以排序结果的中间值作为灰度计算结果复制给该区域内的像素。
相比于均值滤波,参数多了些,参数的设定也稍微有点弯弯绕。
各参数不同的效果
MaskType
滤波器的形状,有’circle’圆和’square’正方形
Radius
滤波器的尺寸,当这个参数为3时,如果选择的形状为circle,表示圆的半径为3,即滤波器为一个半径为3,直径为6的圆形滤波器;
如果选择的形状为square,表示正方向的边长为3+1+3=7,即为7*7的正方形滤波器
Margin
边界处理方式,分别有三种,是三种不同的边界处理方式,因为图像边界往往无法移动滤波窗口,因此需要对像素进行一些补充。
画个简单的示意图(只是示意图,不是算子具体的过程),只有红框中间的像素会被处理到,图像边缘的像素没办法处理到。
‘continued’(持续):在这种处理方式下,图像边界上的灰度值将一直延续到图像边界之外的像素上。简单来说,边界上的像素值将沿着同样的数值持续延伸到边界之外。
‘cyclic’(循环):这种处理方式使用了循环逻辑,当像素越过图像边界时,它会从图像的对应边界处重新出现,就好像图像在水平和垂直方向上重复出现一样。这意味着图像边界之外的像素值依赖于边界内的像素值。
‘mirrored’(镜像):这种处理方式在图像边界处进行像素的镜像反射。当像素超出边界时,它会以反向的顺序在边界内进行反映。换句话说,图像边界外的像素值将通过镜像方式复制边界内的像素值。
‘continued’ 会持续使用边界上的像素值,‘cyclic’ 使用循环方式回到边界内重新使用像素值,而 ‘mirrored’ 则通过镜像反射来计算边界外的像素值。具体选择哪种方式取决于具体的应用需求和个人偏好。