• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

MATLAB学习(1)——ordfilt2

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

       在MATLAB图像处理工具箱中提供了二维统计顺序滤波函数ordfilt2函数。二维统计顺序滤波是中值滤波的推广,对于给定的n个数值{al ,a2,...,an},将它们按大小顺序排列,将处于第k个位置的元素作为图像滤波输出,即序号为k的二维统计滤波。ordfilt2函数语法格式为:

句法

B = ordfilt2(A,order,domain)     
%将A中的每个元素替换为由域中非零元素指定的有序邻居集合中的orderth元素
B
= ordfilt2(A,order,domain,S)
%过滤器A,其中ordfilt2使用对应于域的非零值的S值作为附加偏移量。您可以使用此语法来实现灰度形态学操作,包括灰度扩张和侵蚀。
B
= ordfilt2(___,padopt)
%过滤器A,其中padopt指定ordfilt2如何填充矩阵边界。

其中,(1)A是输入矩阵,指定为2-D,实数,非稀疏,数字或逻辑数组。

           (2)order是用于替换目标像素的元素,指定为类double的实数标量整数。

           (3)domain是邻域,指定为数字或逻辑矩阵,包含1和0。域相当于用于二值图像操作的结构元素。 1值元素定义了过滤操作的邻域。下表给出了一些常  见过滤器的例子:

             

              其功能是:对图像X作顺序统计滤波,order为滤波器输出的顺序值,domain为滤波窗口。S是与domain大小相同的矩阵,它是对应domain中非零值位置 的输出偏置,这在图形形态学中是很有用的。例如:
B=ordfilt2(X,5,ones(3,3)),相当于3×3的中值滤波
B=ordfilt2(X,1,ones(3,3)),相当于3×3的最小值滤波
B=ordfilt2(X,9,ones(3,3)),相当于3×3的最大值滤波
B=ordfilt2(X,1,[0 1 0;1 0 1;0 1 0]),输出的是每个像素的东、西、南、北四个方向相邻像素灰度的最小值。

     (4)S是附加偏移量,指定为与域大小相同的矩阵。

     (5)padopt是填充选项,指定为以下任一值:

Option Description
\'zeros\'

Pad array boundaries with 0\'s

(用0填充数组边界)

\'symmetric\'

Pad array with mirror refiections of itself

(对称填充)

Examples

%Read image into workspace and display it.
A = imread(\'snowflakes.png\');
figure
imshow(A)
%Filter the image and display the result.

B = ordfilt2(A,25,true(5));
figure
imshow(B)

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap