ordfilt2函数
在MATLAB图像处理工具箱中提供的二维顺序统计量滤波函数。它的滤波概念是中值滤波的推广,中值滤波是对于给定的n个数值{al ,a2,...,an},将它们按大小顺序排列,取中间的那个值作为滤波器的输出。而在ordfilt2函数中的二维顺序统计量滤波将n个非零数值按小到大排序后处于第k个位置的元素作为滤波器的输出。
ordfilt2函数语法格式为:
B=ordfilt2(A,order,domain)
B=ordfilt2(A,order,domain,S)
B=ordfilt2(...,padopt)
第一种格式的功能是:对图像A作顺序统计滤波。参数A为输入图像矩阵,order为序号,domain为滤波窗口。即对图像A中大小为domain矩阵大小内的非零像素值进行升序排序,取第order个值作为输出像素值。
第二种格式的功能是:对图像A作顺序统计滤波,前面3个参数与第一种格式相同。S是与domain大小相同的矩阵,它的每一个元素值对应domain中非零值位置的加性偏置输出。
第三种格式的功能是:对图像A作顺序统计滤波,前面省略号代表上面二种格式的一种参数形式。padopt是控制图像A矩阵边界填充的形式,padopt默认设置为'zeros',边界被填充为0像素值,设置为'symmetric'时,A对称地扩展边界。
例如:
B=ordfilt2(A13,ones(5,5)),在模板内的像素值都为非零时,相当于模板为5×5的中值滤波
B=ordfilt2(A,1,ones(5,5)),在模板内的像素值都为非零时,相当于5×5的最小值滤波
B=ordfilt2(A,25,ones(5,5)),在模板内的像素值都为非零时,相当于5×5的最大值滤波
在MATLAB中的帮助文件中找到的ordfilt2函数如下图所示: