答: 为了使图像进一步缩小,可以将感兴趣的区域从背景中分离出来,使关键目标更便于辨别和分析。
图像分割的标准:像素灰度、边界、几何形状、颜色、纹理等。
*MinGray:灰度下限
*MaxGray:灰度上限
threshold(Image : Region : MinGray, MaxGray)
示例:
*选择0-90之间灰度的图像
threshold (ImageFilled, Region, 0, 90)
*将不相连的区域分开成若干个区域
connection (Region, ConnectedRegions)
*形状选择宽度在30px-70px之间的区域
select_shape (ConnectedRegions, SelectedRegions, 'width', 'and', 30, 70)
select_shape (SelectedRegions, Letters, 'height', 'and', 60, 110)
在Halcon常使用 “灰度直方图” 工具可视化选取阈值范围。
在Halcon常使用 “特征直方图” 工具可视化选取形状特征(这里既筛选了宽度&高度)。
2. 基于直方图的自动阈值分割:
*Sigma:平滑值,值越大越平滑,反之
auto_threshold(Image : Regions : Sigma)
*Method:分两个分割方法:
'max_separability'表示根据选择的极性,最大化分割
'smooth_histo'平滑直方图处理
*LightDark:表示极性,提取白或者黑
*UsedThreshold:返回所用的阈值
binary_threshold(Image : Region : Method, LightDark : UsedThreshold)
binary_threshold (Image, LightRegion, 'max_separability', 'light', UsedThreshold)
*开运算区域:先腐蚀,再膨胀,用于处理微小毛刺和噪点
opening_circle (LightRegion, Region, 3.5)
*OrigImage:输入原图
*ThresholdImage:输入预处理图,用于局部变化对比
*RegionDynThresh: 输出区域
*Offset:原图与均值图像对比之后大于此参数,会被输出
*LightDark:提取的极性,黑或者白
dyn_threshold(OrigImage, ThresholdImage : RegionDynThresh : Offset, LightDark)
*Row 和 Column分别表示卷积核的XY数量
*Tolerance:表示卷积核中心像素灰度与相邻像素的差值公差,大于公差丢弃,小于公差合并
*MinSize:表示输出的区域的最小像素数量
regiongrowing(Image : Regions : Row, Column, Tolerance, MinSize)
*Basins:输出的盆地区域
*Threshold: 分割阈值,不要超出图像的的最大灰度
watersheds_threshold(Image : Basins : Threshold)