1.腐蚀

首先确定两个概念,图中右上角十字交叉的黄色格子我们成为结构单元,结构单元中黑点所在位置为原点。

我们把架构单元中以原点为中心放到下面这个二值化图中去遍历,下图为遍历的第一个位置。可以看到结构单元的上和左两个单元格超出二值化图像范围,在腐蚀操作中黑色原点所在的单元格将被腐蚀掉。

当图像遍历到下图所在位置时,可以发现结构单元完全处在二值化图像中,则在腐蚀操作中保留。

总结:当在遍历过程中,结构单元完全处在二值化图像包含中时,则留下此原点位置的像素点,如下图所示。

2.膨胀

在膨胀操作中,我们依旧去遍历结构单元,下图为遍历的第一个位置。可以看到结构单元的下方块处于二值化图像范围,在膨胀操作中黑色原点所在的单元格只要有一个位于二值化图像中就进行保留。

最终结果如下图所示的

3.腐蚀verilog代码讲解

首先,我们定义有颜色为1,没颜色为0, 腐蚀代码是将结构单元所在的五个方块进行运算,最终只有五个格子全为1保留的结果才为1。如下图所示,我们先将结构单元的五个格子标上序号。

代码如下:

    // 与运算结果

wire erosion_result = filter1 & filter2 & filter3 & filter4 & filter5 ;

erosion_result即为腐蚀的最终的结果

4.膨胀verilog代码讲解

同理,膨胀代码是将结构单元所在的五个方块进行运算,最终只有五个格子只要有一个为1,那保留的结果就为1。

代码如下:

// 或运算结果

wire dilation_result = filter1 | filter | & filter3 | filter4 | filter5 ;

dilation _result即为膨胀的最终的结果

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐