Halcon底帽运算
底帽运算的原理是用原始的二值图像减去闭运算的图像。闭运算的目的是对某些局部区域进行“填补”,如填空洞、使分离的边缘相连接等。而底帽运算正是用来提取这些用于填补的区域的。图(a)为从二值图像中提取出的亮的区域,可见有一些空隙和不完整边缘。通过闭运算能对这些小的空隙进行填补,效果如图所示。这里使用底帽运算,刚好将闭运算填补的部分提取出来,如图(b)所示。
图中的底帽运算处理代码如下:
read_image (Image, 'data/ shapes')
decompose3 (Image, Red, Green, Blue)
trans_from_rgb (Red, Green, Blue, Hue, Saturation, Intensity, 'hsv')
threshold (Saturation, Regions, 180, 255)
gen_circle(StructElement,10,10,10)
*清理显示窗口,以便显示结果
dev_clear_window ()
*清理显示窗口,以便显示结果
bottom_hat (Regions, StructElement, RegionBottomHat)
dev_clear_window ()
dev_display (RegionBottomHiat)
由此可见,底帽运算返回的像素部分是尺寸比结构元素小的,并且比较暗的、闭运算中用于填补孔隙的局部小区域。