图像处理 var_threshold与binary_threshold

binary_threshold(二进制阈值)函数

功能:自动全局阈值分割,主要对灰度直方图存在两个波峰图像的自动阈值分割。
使用二进制阈值分割图像,设定阈值,根据像素大小将图像分为黑白两部分,根据LightDark需要提取其中一种,对同质照明的背景下字符的分割很有用。

函数原型: binary_threshold(Image : Region : Method, LightDark : UsedThreshold)

参数

Image:需要进行阈值的图像;
Region:处理后的区域;
Method:分割方法(包含’max_separability’:最大限度的可分性, ‘smooth_histo’:直方图平滑);
LightDark:提取的是黑色还是白色部分;
UsedThreshold:自动阈值或者设置的阈值的值 。

两种方法

max_separability(最大限度的可分性):
通过选择Method= ’ max_separability ',根据“灰度直方图的阈值选择方法”中的灰度直方图的自动阈值进行调用。该算法首先计算图像的直方图,然后利用统计矩找到将像素分割为前景和背景的最优阈值,并最大化这两个类之间的可分性。此方法仅适用于byte和uint2图像。
smooth_histo(直方图平滑):
通过选择Method = 'smooth_histo ’ ,binary_threshold可以通过以下方式确定进行分割的阈值:首先确定灰度值的相对直方图,然后从直方图提取相关的最小值,作为阈值操作的参数。为了减少最小值,直方图先被平滑处理为一个高斯函数,在平滑直方图中,掩模尺寸增大,直到最小值。然后,阈值设置为这个最小值。
这两种方法都只能用于具有双峰直方图的图像。

方法效果区别

当LightDark=light,max_separability选的区域比smooth_histo小;
当LightDark=dark,max_separability选的区域比smooth_histo大。

var_threshold(均差阈值)函数

功能:均值和标准偏差局部阈值分割,能够较好的分开目标和背景,对不适合的参数设置不敏感,可以有效地减少噪声对分割的影响。
函数原型: var_threshold(Image : Region : MaskWidth, MaskHeight, StdDevScale, AbsThreshold, LightDark : )

参数

Image:需要进行阈值的图像;
Region:处理后的区域;
MaskWidth, MaskHeight:是用于滤波平滑的掩膜单元高度和宽度;默认值:15;建议值:9、11、13、15;限制:掩膜宽度与高度>= 1;
StdDevscale:是标准差乘数因子(简称标准差因子) ;默认值:0.2;建议值:-0.2,-0.1,0.1,0.2;
AbsThreshold:是设定的绝对阈值,最小灰度值与均值的差值;默认值:2;建议值:-2,-1,0,1,2;
LightDark:阈值类型。
默认值:‘dark’;可选值列表:’ light’、’ dark’、’ equal’、’ not equal’。

举例

例:var threshold (Image, Region, 4, 4, 0.2, 12, ‘dark’ )
在该程序中,用4x4的掩膜在图像上逐像素游走,用原图中的当前像素和对应掩膜中16个像素的灰度均值对比,找出暗(dark)的区域即地低于平均值的部分。当原图像素灰度比对应的掩膜灰度均值低(0.2,12)个灰阶时,该区域被分割出来。
程序中StdDevScale = 0.2, AbsThreshold = 12,问题的关键就是理解如何通过StdDevscale和AbsThreshold来确定用于分割的阈值。

描述

var_threshold会从输入图像中选择像素满足阈值条件的那些区域分割。阈值由本地窗口中每个像素(x,y)周围大小为掩膜宽×掩膜高的平均灰度值和标准差计算。
设g(x,y)为输入图像图像中位置(x,y)处的灰度值,m(x,y)和d(x,y)为该像素周围窗口中相应灰度值的均值和标准差,标准偏差用于测量图像中的噪声,并通过StdDevScale进行缩放以反映所需的灵敏度,阈值条件由参数LightDark的类型决定。
v(x,y) = min(StdDevScale ×d(x,y),AbsThreshold)
当标准差因子StdDevscale>=0时, v(x.y)取StdDevScale ×d(x,y)和AbsThreshold中较大的那个 ;
当标准差因子StdDevScale<= 0时, v(xy)取(StdDevScale×d(x,y)和AbsThreshold中较小的那个。
所有满足上述条件的像素被聚合到生成的区域区域中;对于参数StdDevScale,-1.0和1.0之间的值是明智的选择,0.2作为建议值。如果参数过高或过低,则可能返回空或满的区域。*

三者差别与适用范围

1.threshold:全局阈值分割,适用于环境稳定,目标与背景存在明显的灰度差的场合,直方图会存在两个波峰一个是目标一个是背景,那么阈值就是物体与背景之间的最小值。。
2.binary_threshold:自动全局阈值分割,主要对灰度直方图存在两个波峰图像的自动阈值分割。
3.var_threshold:均值和标准偏差局部阈值分割,能够较好的分开目标和背景,对不适合的参数设置不敏感。var_threshold算子集成度更高,并且加入了“标准差×标准差因子”这一变量,可以有效地减少噪声对分割的影响。

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Halcon中的threshold算子是一种用于图像阈值分割的方法。根据引用和引用的信息,threshold是Halcon中使用最多的基本算子之一。在正常干扰不多的情况下,可以直接使用threshold算子进行阈值分割。而在复杂情况下,可以根据具体需要选择不同的阈值分割算子,如dyn_thresholdbinary_thresholdvar_threshold等。这些算子可以根据图像的特点和需求来选择合适的算法进行阈值分割。另外,根据引用的信息,threshold算子可以根据灰度值的标准差和平均值来调整阈值,以提高对比度并选出需要的区域。综上所述,Halcon中的threshold算子是一种常用的图像阈值分割算子,可以根据不同的情况选择合适的算法进行应用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Halcon图像分割-多个threshold阈值处理算子讲解](https://blog.csdn.net/yuanrongyouzhi/article/details/124336843)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [Halcon算子threshold、dyn_thresholdbinary_threshold、auto_threshold、fast_thresholdvar_threshold](https://blog.csdn.net/weixin_39829336/article/details/112168217)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值