全国服务热线:

15861139266

halcon——常见阈值分割总结_南昌机器视觉培训_南昌上位机培训_南昌工业机器人培训
时间:2023-04-14 09:33:51 点击:4 标签:

halcon——常见阈值分割总结

1,全局阈值分割

threshold(Image : Region : MinGray, MaxGray : )

全局阈值分割,适用于环境稳定,目标与背景存在明显的灰度差的场合。(即根据高低双阈值将图像分为前景和背景)


利用灰度直方图确定阈值进行图像分割。一般是物体与背景之间存在一个明显的灰度差,直方图会存在两个波峰一个是目标一个是背景,那么阈值就是物体与背景之间的最小值。


read_image (Image, 'clip')

gray_histo (Image, Image, AbsoluteHisto, RelativeHisto)

gen_region_histo (Region, AbsoluteHisto, 255, 255, 1)

*利用直方图获取阈值

histo_to_thresh (AbsoluteHisto,10, MinThresh, MaxThresh)

*全局阈值分割

threshold (Image, Region1, MinThresh, MaxThresh)

2,自动全局阈值分割

binary_threshold(Image : Region : Method, LightDark : UsedThreshold)

自动全局阈值分割,主要对灰度直方图存在两个波峰图像的自动阈值分割。提供两种方法“max_separability”和“smooth_histo”。


最大限度的可分性(max_separability):根据“灰度直方图的阈值选择方法”的灰度直方图自动阈值调用。该算法首先计算图像的直方图,然后利用统计矩找到将像素分割为前景和背景的最优阈值,并最大化这两个类之间的可分性。此方法仅适用于byte和uint2图像。

直方图平滑(smooth_histo):首先确定灰度值的相对直方图。然后,从直方图提取相关的最小值,作为阈值操作的参数。为了减少最小值,直方图被平滑处理为一个高斯函数,就像在auto_threshold中一样。在平滑直方图中,掩模尺寸增大,直到得到2个波峰的最小值。然后,阈值设置为这个最小值的位置。

read_image (Image, 'clip')

binary_threshold (Image, Region, 'max_separability', 'dark', UsedThreshold)

3,局部阈值分割

dyn_threshold(OrigImage, ThresholdImage : RegionDynThresh : Offset, LightDark : )

局部阈值分割,当前背景之间差异明显时,可以设定全局阈值进行threshold,但很多情况下由于背景不均一,目标体经常表现为比背景局部亮一些或暗一些,无法确定全局阈值操作(无法通过单个高低阈值对整幅图像分割),需要通过其邻域找到一个合适的阈值进行分割这时就要用到局部阈值分割了。


4,均值和标准偏差局部阈值分割

var_threshold(Image : Region : MaskWidth, MaskHeight, StdDevScale, AbsThreshold, LightDark : )

均值和标准偏差局部阈值分割,能够较好的分开目标和背景,对不适合的参数设置不敏感。


参数列表:


MaskWidth、 MaskHeight是用于滤波平滑的掩膜尺寸;


StdDevScale是标准差乘数因子(简称标准差因子);


AbsThreshold是设定的绝对阈值;


LightDark有4个值可选,’light’、’dark’、’equal’、’not_equal’。


大林上位机机器视觉_苏州电工培训_苏州PLC培训_苏州上位机培训_苏州机器视觉培训_苏州工业机器人培训_最适合电工及plc编程人员学习的上位机机器视觉课程 大林老师:15861139266(微信同号)


需要强调的是var_threshold算子和dyn_threshold算子极为类似。不同的是var_threshold集成度更高,并且加入了“标准差×标准差因子”这一变量。可以有效地减少噪声对分割的影响。


5,自动全局阈值分割

auto_threshold(Image : Regions : Sigma : )

自动全局阈值分割(根据直方图确定阈值),运行原理:


计算灰度直方图。

高斯平滑后从直方图提取最小值。

根据提取的最小值进行阈值分割。sigma越大提取区域越少。

read_image (Image, 'fabrik')

median_image (Image, Median, 'circle', 3, 'mirrored')

auto_threshold (Median, Regions, 3)

6,快速全局阈值分割

fast_threshold(Image : Region : MinGray, MaxGray, MinSize : )

快速全局阈值分割,灰度值满足MinGray<=g<=MaxGra聚合为一个区域,为了节省时间按两步执行。


先处理行列间隔Minsize的所有像素点。

处理上一步选择点的领域。和threshold相比分割速度快。

7,分水岭阈值分割

watersheds_threshold(Image : Basins : Threshold : )

分水岭阈值分割,可以提取分水岭盆地。其原理:


通过分水岭算法watersheds()获取图像的盆地。

根据第一步分水岭算法分离结果,若盆地部分的灰度< threshold,则被合并到一起。

总结:

综上所述,全局threshold分割和局部的dyn_threshold分割用的比较多。尤其是图片光照不均匀,而dyn_threshold选对两个分割图,再对结果做些筛选处理,效果会很好。一般用适当尺度的均值滤波图和原图,还有用灰度开闭的图来局部分割。







立即咨询
  • 品质服务

    服务贴心周到

  • 快速响应

    全天24小时随时沟通

  • 专业服务

    授权率高,保密性强

  • 完善售后服务

    快速响应需求,及时性服务

直播课程
电气类课程
上位机软件开发课
机器视觉软件开发课
深度学习
联系方式
电话:15861139266
邮箱:75607802@qq.com
地址:苏州吴中区木渎镇尧峰路69号
关注我们

版权所有:大林机器视觉培训所有 备案号:苏ICP备14016686号-9

本站关键词:上位机培训 机器视觉软件开发培训 上位机运动控制培训 深度学习培训 网站标签