函数 > 图像处理 > 卷积和滤波器 > 示例:中值和分位数滤波
  
示例:中值和分位数滤波
使用 medsmoothgetnoise 求出图像中每个元素的中值强度 (0.5 分位数) 及其 8 个最近邻点 (3 x 3 二乘核)。medsmooth 函数返回滤波后的图像,而 getnoise 函数则返回原始图像与滤波后的图像之间的差异。
如果需要以用户定义的核与分位数代替中值,可使用 quantfilt
除了可去除噪声,中值滤波也可能会将图片中轮廓鲜明的小特征滤掉。
有关使用此示例的信息,请参考 关于图像处理示例
medsmooth
1. 读入图像。
单击复制此表达式
2. 向图像添加噪声。
单击复制此表达式
单击复制此表达式
3. 对比原始图像和噪声图像。
(fruit.bmp)
(fruit_n.bmp)
4. medsmooth 对图像进行滤波处理。
单击复制此表达式
单击复制此表达式
(fruit_f.bmp)
getnoise
此函数会从图像矩阵的中值滤波形式中去掉其原始形式。
1. 对噪声图像应用 getnoise 函数。
单击复制此表达式
单击复制此表达式
(fruit_gn.bmp)
getnoise 函数执行从滤波后的图像中去除噪声的等效操作:
单击复制此表达式
2. 计算并查看两个图像之间的绝对差别。
单击复制此表达式
单击复制此表达式
(fruit_an.bmp)
quantfilt
在某些情况下,具有 3 x 3 二乘核的中值滤波器可能不够普遍而无法进行正确滤波。例如,若以这种方法对具有多个尖角的图像进行滤波处理,通常会滤掉拐角像素。使用 quantfilt 函数可避免此效应,该函数具有加号形状的中值滤波核,而不是上面指定的均匀 3 x 3 核。
考虑常见的图形,并向其添加噪声:
1. 读入包含图形的图像。
单击复制此表达式
2. 向图像添加噪声。
单击复制此表达式
单击复制此表达式
3. 对比原始图像和噪声图像。
(pattern.bmp)
(pattern_n2.bmp)
4. 使用 quantfilt 函数对噪声图像进行滤波处理,该函数具有分位数为 0.5 的中值和 3 x 3 二乘核。
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
5. 使用 quantfilt 函数对噪声图像进行滤波处理,该函数具有分位数为 0.5 的中值和十字形核。
单击复制此表达式
单击复制此表达式
单击复制此表达式
6. 比较两个滤波后的图形。
(pattern_sq.bmp)
(pattern_cr.bmp)
与十字核相比,二乘核对于直角边缘、线条和角部的削弱要明显得多。
非中值分位数
quantfilt 函数的另一应用是选取分位数而非中值 (0.5),这样可改变图像的总体强度。例如,如果选取 0.0 分位数,则取像素及其邻点的最小值;1.0 分位数则给出最大值。(这些与灰度形态腐蚀与形态扩散稍有类似)
1. 通过将分位数设置为 0.0 来扩散原始图形的较暗区域并腐蚀较亮区域。
单击复制此表达式
单击复制此表达式
单击复制此表达式
2. 通过将分位数设置为 1.0 来扩散原始图形的较亮区域并腐蚀较暗区域。
单击复制此表达式
单击复制此表达式
单击复制此表达式
3. 将原始图形与亮、暗两种形式的图形进行对比。
(pattern.bmp)
(pattern_drk.bmp)
(pattern_lit.bmp)