简介:
ordfilt2 是一个二维数据过滤器,首先对根据滤窗口中的非零元素对目标矩阵中的元素进行排序,然后用其中第K(通过参数指定)大的元素代替原数据值,并以此过程遍历目标矩阵中的每一个元素。
一、ordfilt2 应用的三种形式
1、B = ordfilt2(A, order, domain);
根据 domain 过滤窗口的大小,取Input中的每个元素关于 domain 相同尺寸大小的区域中的第order的元素代替原像素的值 ,(注意:domain中0元素对应的位置不参与排序);
2、B = ordfilt2(A, order, domain, S);
S —— Additive offsets ,即附加偏移。 对于某个元素关于 domain 相同尺寸大小的区域中的每一个位置,若与之对应的 domain 位置的值不为零,则该位置加上S中对应位置的值,再进行相应的滤波计算。
3、B = ordfilt2(A, order, domain, S,padopt);
padopt —— Padding option,用来指明如何拓展边界。
二、参数介绍
1、A —— Input Marix (输入矩阵)
A 是一个2维的,非稀疏的矩阵。
2、order
— Element to replace the target pixel
指明对于A中某个元素值,要用其邻域中的第几大的元素去替代这个元素的值。
3、domain
— Neighborhood
说明过滤窗口的大小,domain中的零元素的位置表示该位置不在过滤窗口之内。
4、S —— Additive offsets ,附加偏移。
对于某个元素关于 domain 相同尺寸大小的区域中的每一个位置,若与之对应的 domain 位置的值不为零,则该位置加上S中对应位置的值,再进行相应的滤波计算。
5、padopt —— Padding option
用来指明如何拓展边界
默认用 0 拓展边界,‘symmetric’ 表是镜像填充。