zoukankan      html  css  js  c++  java
  • MATLAB学习(1)——ordfilt2

           在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)

  • 相关阅读:
    Oracle 过滤和排序数据
    Oracle基础知识介绍
    禁用笔记本自带的键盘
    阿里云服务开启swap分区。
    谷粒商城nacos远程配置中心出错
    nacos修改密码
    ssm+maven+json 依赖版本
    idea 使用maven创建web过慢解决问题
    mybatis的动态sql
    mybatis -基础知识点梳理
  • 原文地址:https://www.cnblogs.com/yehjiao/p/9227502.html
Copyright © 2011-2022 走看看