• 【halcon】形态学操作总结


    腐蚀(erosion)和膨胀(dilation

    知道发音便于记忆:

    效果

    首先,膨胀和腐蚀并不是放大和缩小。而是“胖瘦粗细”的变化!

    膨胀就是变胖变粗。

    腐蚀就是变瘦变细。

    原理

    在做 膨胀和腐蚀 运算的时候,会有一个卷积核,这个核就是实现膨胀和腐蚀的关键。核越大效果越明显。

    关于腐蚀和膨胀的算子

    挑一个最简单的讲吧:

    erosion_circle

     第一个是输入参数:即原始图形。

     第二个输出参数:即腐蚀后的图形。

    第三个是输入控制参数,及卷积核的大小。

    开运算和闭运算

    1 开运算

     原理

      先腐蚀(erosion)后膨胀(dilation)

     就是我拿一个卷积核,往region中放,可以放心的region被保留,放不下的region被抛弃。

    原本大的区域可能会被分割成小的区域,小的区域会被干掉。

    opening_circle (Region, RegionOpening, 20)

    效果

     
    

    2 闭运算

     原理

    先膨胀(dilate)后腐蚀(dilation)。

    效果1

    这个fill_up也能做到。

     效果2

    效果三:

    填坑,其实和效果二得本质是一样的(这个fill_up做不到。)

     

    小结

    闭运算:主要用于闭掉一些区域中的孔洞,或者边缘不完整的地方。或者是闭合连接!

    1. closing_rectangle1 (RegionFillUp, RegionClosing, 80, 80)
    2. closing_circle(RegionFillUp, RegionClosing,80)

    对于 rectangle1来说,卷积核是个矩形的,所以有两个控制参数,长和宽。

    而对应circle来说,卷积核是圆形的,所以只有半径这一个控制参数。

     开运算可以于筛选掉一些较小的Region,或者对某个区域减肥

    opening_rectangle1(RegionFillUp, RegionOpening, 10, 10)

    其他

    形态学还有几种操作,目前感觉用的不多,以后有时间再补充吧。

    形态学梯度: 膨胀(dilate) 减去 腐蚀(erode)

    顶帽: 原图像 减去 开操作

    黑帽: 闭操作 减去 原图像

  • 相关阅读:
    Go并发的非阻塞缓存
    golang sync pool
    如何实现暗示文本顺序
    【名人】王兴语录
    Automated Testing for LLMOps 01:使用CircleCI进行持续集成CI
    Mysql在可重复读事务隔离级别下怎么解决幻读的
    【前端必会】走进webpack生命周期,另类的学习方法
    [附源码]java毕业设计智慧农业销售平台
    mysql数据库基础:视图、变量
    盲人咖啡厅导航:科技之光点亮独立生活新里程
  • 原文地址:https://blog.csdn.net/songhuangong123/article/details/127458236