matlab 函数说明—ordfilt2

今天看harris角点实现的源码,在某一个版本中看到了这个函数,不是很理解,doc ordfilt2之后还是不清楚,终于在matlab论坛上搞清楚了ordfilt2的功能。

 

中文理解函数名就是顺序滤波函数,后面的2表示的是2维滤波,常用的调用形式如下:

1.B  = ordfilt2(A,order,domain)

这种形式中,A为被滤波的矩阵,order表示选取由domain确定的邻域中第order个元素替换A中的元素,存入B中。示例如下:

Y=ordfilt2(X,5,ones(3)) ;  //相当于3*3窗口的中值滤波

Y=ordfilt2(X,1,ones(3));   //相当于3*3窗口的最小值滤波

需要注意的是,domain矩阵中可能会有某些位置为零(不为零的位置为1),这种为零的位置不算在顺序统计的领域之中。也就是说:

Y=ordfilt2(X,1,[0 1 0;1 0 1;0 1 0])  表示用窗口表示的邻域中不为零的位置的像素值中选择最小的替代原来的像素值。

2.B  = ordfilt2(A,order,domain,S)

暂时没搞明白S是做啥用的,好像一时半会儿也用不到,先记录着,以后想明白了再更新

posted @ 2013-07-26 23:41  曾见绝美的阳光  阅读(3005)  评论(0编辑  收藏  举报