• 形态学膨胀初步


    “A被B膨胀是所有结构元素原点位置组成的集合,其中映射并平移后的B至少与A的某些部分重叠”[Conzalez]

    (1)、设图像数据为a:

    形态学膨胀初步

    a为一幅二值图像,1对应图像中心的亮区域。

    结构元素为b:

    形态学膨胀初步

    执行膨胀:imdilate(a,b),结果为:

    形态学膨胀初步

    (方框区域对应原图像数据)

    (2)、过程分解:

    先用结构元素b扫过a的第一行

    形态学膨胀初步
    (方框为图像数据第一行)

    再第二行:

    形态学膨胀初步

    再是第三行:

    形态学膨胀初步

    将结构元素对三行的平移结果重叠在一起,得:

    形态学膨胀初步

    此即最终结果。

    (3)以上,结构元素是对称的,原点默认在中心,即b(2,2),对非对称结构元素,如:

    k=

    形态学膨胀初步
    原点按floor((size(k)+1)/2)进行计算,即红色背景标识的k(2,4)。

    设图像数据为a:

    形态学膨胀初步

    执行膨胀运算:imdilate(a,k),得:

    形态学膨胀初步

    也做一次过程分解:
    ①用结构元素扫第一行:

    形态学膨胀初步

    (红色背景标识的结构元素的原点位置,橙色背景为对a(5,6)的平移结果,方框标识对a(5,7)的平移结果)

    ②对第二行:

    形态学膨胀初步

    结构同上。只是下移了一行。

    ③将①、②步中的结果叠加,便是膨胀的最后结果。

    (4)一些说明:

    //对膨胀的理解见最后 

    结构元素:
    a=
         1     1     1     1     1
         1     1     1     1     1
         1     1     1     1     1
         1     1     1     1     1
         1     1     1     1     1
    “可分解为一个值为1的5元素行矩阵和一个值为1的5元素列矩阵”指
    a可分解为以下两个矩阵的膨胀:
    形态学膨胀初步

    而非
    形态学膨胀初步

    实际上,
    形态学膨胀初步

    (注:为便于表示,一般只写出结构元素中的1值)    
    再有一例:
    se=strel('diamond',3)产生结构元素:
    se=
         0     0     0     1     0     0     0
         0     0     1     1     1     0     0
         0     1     1     1     1     1     0
         1     1     1     1     1     1     1
         0     1     1     1     1     1     0
         0     0     1     1     1     0     0
         0     0     0     1     0     0     0
    它可分解为3个结构元素的膨胀:
    decomp(1)=
         0     1     0
         1     1     1
         0     1     0
    decomp(2)
         0     1     0
         1     0     1
         0     1     0
    decomp(3)
         0     1     0
         1     0     1
         0     1     0
    但:
    形态学膨胀初步

    而是:
    形态学膨胀初步


    (即:将各分解的结构元素进行维数扩展,再膨胀,才能还原到最先得到的结构元素)

    结构元素B的镜像在图像f中平移,要保证平移后的B与f至少有一个像素相交(即“至少重叠一个1值像素”)。之

    前的理解有误,不是将结构元素按其中心(原点)在图像1值元素中平移!——这是准确的说法,但对于对称的结构元素,膨胀操作的确可看成是平移。而且膨胀的结果(图像)与结构元素有着类似的形状(要膨胀很多次后才能体现出来),如下例:
    原图:

    形态学膨胀初步


    >>g=im2bw(f);
    >> se=strel([0 1 0;1 1 1;0 1 0]);
    >> t=imdilate(g,se);
    >> for k=1:5 h=imdilate(h,se); end
    >> figure,imshow(h)
    得膨胀5次后的结果:
    形态学膨胀初步

    膨胀10次的结果为:
    形态学膨胀初步

  • 相关阅读:
    mybatis-databaseIdProvider多数据库支持
    mysql-高性能索引策略
    mysql-冗余和重复索引
    mybatis-枚举类型的typeHandler&自定义枚举类型typeHandler
    mybatis-自定义typeHandler
    mysql-覆盖索引
    单例模式
    mybatis实战教程一:开发环境搭建
    MySQL分页查询优化
    深入组件
  • 原文地址:https://www.cnblogs.com/wlzy/p/6273364.html
Copyright © 2020-2023  润新知