形态学处理的作用:
用于提取有意义的局部图像细节,通过改变局部区域的像素形态,对图像进行增强,为后续分割、特征提取、边缘检测做准备。
在开始之前,我们先了解一下:结构元素:StructElement
结构元素类似于 “滤波核” ,不同的是结构元素是二值的。
以上面膨胀算法为例,结构元素尺寸确定了膨胀的程度。结构元素的XY各有一个 “触脚” ,从左往右从上往下扫描原图的时候,遇到白块,则将元素中心a变成白块。ps:上图蓝色块表示新增的像素区域。
1. 腐蚀:用于消除边缘和杂点
*Radius:元素结构的大小
erosion_circle(Region : RegionErosion : Radius)
2. 膨胀:用于连接区域外的杂点
connection (RegionErosion, ConnectedRegions)
*Radius:元素结构的大小
dilation_circle(Region : RegionDilation : Radius)
3. 开运算:先腐蚀后膨胀,用于消除小的非关键区域
*指定结构元素
gen_circle (StructElement, 10, 10, 3)
*开运算,返回运算区域
opening(Region, StructElement : RegionOpening)
4. 闭运算:先膨胀后腐蚀,用于填充空隙
*指定结构元素
gen_circle (StructElement, 10, 10, 3)
*闭运算,返回运算区域
closing(Region, StructElement : RegionClosing)
5. 顶帽运算:SourceRegion - OpeningRegion = Top_Hat Region
提取被开运算移除的像素区域,返回小的,亮的区域
top_hat(Region, StructElement : RegionTopHat)
read_image (Image, 'C:/Users/Public/Documents/MVTec/HALCON-17.12-Progress/examples/images/food/hazelnut_wafer_07.png')
threshold (Image, Regions, 89, 175)
gen_rectangle1 (Rectangle, 0, 0, 5, 5)
*opening (Regions, Rectangle, RegionOpening)
top_hat (Regions, Rectangle, RegionTopHat)
6. 底帽运算:SourceRegion - ClosingRegion = Bottom_Hat Region
提取被闭运算移除的像素区域,返回小的,暗的区域
read_image (Image, 'C:/Users/Public/Documents/MVTec/HALCON-17.12-Progress/examples/images/food/hazelnut_wafer_07.png')
threshold (Image, Regions, 89, 175)
gen_rectangle1 (Rectangle, 0, 0, 8, 8)
*opening (Regions, Rectangle, RegionOpening)
*closing (Regions, Rectangle, RegionClosing)
*top_hat (Regions, Rectangle, RegionTopHat)
bottom_hat (Regions, Rectangle, RegionBottomHat)
【以上是针对Halcon中的区域-Region,也就是二值图像进行了形态学分享,当然Halcon中还支持灰度图像-Image进行形态学处理,后面有机会再做分享,谢谢】