Halcon 第三章『Morphology形态学』◆第1节:腐蚀与膨胀

        腐蚀与膨胀:通过腐蚀与膨胀操作对二值图像区域进行“收缩”或“扩张”。

        结构元素

        结构元素一般由0和1的二值像素组成。结构元素的原点相当于“小窗”的中心,其尺寸大小具体由算子指定,结构元素的尺寸也决定着腐蚀或者膨胀的程度。结构元素的形状可以说圆形、矩形、椭圆形,甚至也可以是指定的多边形状。

        二值图像

        二值图像:仅有“0" "1”两个像素值的图像

        腐蚀

        腐蚀操作是对所选区域进行“收缩”的一种操作,可以用于消除边缘和杂点。腐蚀区域的大小与结构元素的大小和形状有关。

        原理:使用一个结构元素(如矩形、圆形或自定义多边形),用其原点在二值图像上逐个进行移动,每移动一个位置,判断对应位置是否与结构元素完全相同,如果相同,则将结构元素的原点位置对应的二值图像位置的值赋值为“1”,否则,原点对应的原二值图像位置赋值为“0”(这里的结构元素都是奇数,因为要取其原点,然后对原点周边的像素进行减法)。

        经过腐蚀操作,图像区域的边缘可能会变得平滑,区域的像素将会减少,相连的部分可能会断开,但是各部分仍然属于同一个区域

        腐蚀相关的算子有:       

        Morphology / Region

        使用圆形结构元素进行腐蚀操作

erosion_circle(Region : RegionErosion : Radius : )

        Region:输入参数,输入图像中的区域。

        RegionErosion:输出参数,输出腐蚀后的区域。

        Radius:输入参数,为圆形结构元素的半径。默认3.5,值的范围0.5 ≤ Radius ≤ 511.5 (lin)。

备注:圆形的直径去奇数是因为圆形是对称图形,着这样是为了使圆形的中心点左边为整数。

        Morphology / Region

        使用矩形结构元素进行腐蚀操作

erosion_rectangle1(Region : RegionErosion : Width, Height : )

        Morphology / Region

        用一个自定义的结构元素对输入区域进行腐蚀操作

erosion1(Region, StructElement : RegionErosion : Iterations : )

        Morphology / Region

        使用一个参考点对输入区域进行腐蚀操作

erosion2(Region, StructElement : RegionErosion : Row, Column, Iterations : )

        Legacy / Morphology(旧版本)

        使用的结构元素来自格雷字母表,通过定义结构元素对输入区域进行腐蚀操作

erosion_golay(Region : RegionErosion : GolayElement, Iterations, Rotation : )

        Legacy / Morphology(旧版本)

        与erosion_golay类似,使用格雷字母表中的元素对输入区域进行连续的腐蚀操作

erosion_seq(Region : RegionErosion : GolayElement, Iterations : )

         膨胀

        与腐蚀相反,膨胀是对选区进行“扩大”的一种操作。

        原理:使用一个结构元素(如矩形、圆形或自定义多边形),用其原点在二值图像上逐个进行移动,每移动一个位置,判断映射后的结构元素与所覆盖的二值图像是否有重叠部分,如果存在重叠部分,则结构元素原点对应的二值图像位置赋值为“1”。否则,二值图像不进行任何改变。

        (换一种理解腐蚀:可以用原点逐个放在有1的位置,然后此1周围变成和结构元素相同的1,其结果与本质理解相同)

        经过膨胀操作,图像区域的边缘可能会变得平滑,区域的像素将会增加,不相连的部分可能会连接起来,这些都与腐蚀操作正好相反。即使如此,原本不相连的区域仍然属于各自区域,不会因为像素重叠就发生合并。

        备注:膨胀后发生的重叠的区域可以用opening_seq算子分离开来。       

        膨胀相关的算子有:   

        Morphology / Region

        使用圆形结构元素进行膨胀操作。

dilation_circle(Region : RegionDilation : Radius : )

        Morphology / Region

        使用矩形结构元素进行膨胀操作。

dilation_rectangle1(Region : RegionDilation : Width, Height : )

        Morphology / Region

        用一个自定义的结构元素对输入区域进行膨胀操作。

dilation1(Region, StructElement : RegionDilation : Iterations : )

        Morphology / Region

        使用一个参考点对输入区域进行膨胀操作。

dilation2(Region, StructElement : RegionDilation : Row, Column, Iterations : )

        Legacy / Morphology(旧版本)

        使用的结构元素来自格雷字母表,通过定义结构元素对输入区域进行膨胀操作。

dilation_golay(Region : RegionDilation : GolayElement, Iterations, Rotation : )

        Legacy / Morphology(旧版本)

        与dilation_golay类似,使用格雷字母表中的元素对输入区域进行连续的膨胀操作。

dilation_seq(Region : RegionDilation : GolayElement, Iterations : )

        参考文献:《Halcon机器视觉算法原理与编程实战》杨青

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值