halcon local_threshold函数介绍

halcon local_threshold函数介绍

local_threshold(Image : Region : Method, LightDark, GenParamName, GenParamValue : )
使用Method中的阈值方法分割单通道图像,并在Region 中返回分割后的区域。
目前,操作符只提供方法adapted_std_deviation。
该算法是一种文本二值化技术,为文档图像处理提供了良好的效果。


通过选择Method = 'adapted_std_deviation',
根据Sauvola调用基于局部均值和标准偏差的局部自适应阈值(参见参考文献中的文章)。
该算法能够对文档图像进行分割,即使文档图像由于光照不均或噪声等原因而退化。
它通过考虑局部对比,在非均匀背景下实现文本的二值化。

对于暗前景的分割(见参数LightDark),
对于位置(r,c)的像素,在大小为mask_size x mask_size的窗口内计算局部阈值T(r,c),
具体如下:
 
u(r,c)是窗口内的局部平均值, a(r,c)表示对应的标准差.
参数R(参见“range”)是假定的标准差最大值(对于字节图像,R = 128),
而k(参见“scale”)是一个参数,它控制阈值T(R,c)与平均值u(r,c)的差异。
如果在一个点(r,c)的邻域内存在高对比度,则标准差a(r,c)的值接近r,
从而产生一个接近局部均值u(r,c)的阈值T(r,c)。
如果对比度较低,则局部阈值低于局部平均值。
对于在浅色背景上的暗文本也包含较暗的区域,
这个较低的阈值使文本即使在较暗的区域也可以分割。


参数LightDark控制是分割亮结构还是暗结构.


如果LightDark = 'dark',则分割浅色背景上的深色结构。
选取灰度值小于计算局部阈值T(r,c)的每个像素p(r,c)。

如果LightDark = 'light',则分割深色背景上的浅色结构。

结果基本上是一样的,如果图像将被倒置,然后,LightDark被设置为“dark”


通过将GenParamName设置为以下值之一,
可以使用GenParamValue设置“adapted_std_deviation”方法的其他特定参数:


mask_size
指定掩码大小,即,其中计算局部阈值的邻域的大小。
窗口大小越小,分割的笔画越细。
必须将'mask_size'设置为大于要分割的字符或结构的笔画宽度的值。
如果'mask_size'为偶数,则使用下一个较大的奇数值。
建议值:15(默认值)、21、31


scale
设置参数k(0<=k),该参数控制阈值与本地平均值的差异。
使用较小的值来“scale”,也可以分割与背景对比度较低的结构。
使用较大的值来抑制杂波。
建议值:0.2(默认值)、0.3、0.5


range
设置标准差R的最大假设值。
该参数应根据期望的灰度值范围进行调整。
根据经验,“range”的值可以设置为range = 0.5*(MaxGray-MinGray)
其中MinGray和MaxGray是图像中的最小和最大灰度值,
可以使用min_max_gray来确定。


建议值:128(默认值)用于字节图像,32767.5(默认值)用于uint2图像


例程:
read_image (Letters, 'letters')
dev_close_window ()
dev_open_window_fit_image (Letters, 0, 0, -1, -1, WindowHandle)
*在下一张图像中添加不同的背景,以便更清楚地显示adapted_std_deviation方法的强度。
get_image_size (Letters, Width, Height)
gen_image_surface_first_order (ImageSurface, 'byte', 0.5, 0.5, 0.5, Width / 2, Height / 2, Width, Height)
add_image (Letters, ImageSurface, ImageCombined, 0.5, 0)
* 显示用一个全局阈值无法从非均匀背景中提取图像内的字符。
GlobalThreshold := 128
threshold (ImageCombined, RegionGlobal, 0, GlobalThreshold)
dev_display (ImageCombined)
dev_display (RegionGlobal)
stop ()
* 该方法实现了局部自适应阈值化,适用于不同背景下的目标分割
local_threshold (ImageCombined, Region, 'adapted_std_deviation', 'dark', [], [])
dev_display (ImageCombined)
dev_display (Region)

例程通过向local_threshold 传递adapted_std_deviation,
可以实现从背景不均匀图像中提取AOI
执行结果如图
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值