Halcon 阈值算子汇总


全局阈值

threshold(Image : Region : MinGray, MaxGray : )

快速阈值,此算子与threshold类似,只是多了一个输入参数MinSize :提取对象的最小尺寸

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

根据灰度直方图自动确定阈值(通常为以下三个算子连用)

gray_histo(Regions, Image : : : AbsoluteHisto, RelativeHisto)
histo_to_thresh (RelativeHisto, Sigma, MinThresh, MaxThresh)   //此算子的输入参数可为AbsoluteHisto或RelativeHisto
threshold (Image, Region, MinThresh, MaxThresh)

根据灰度直方图分割图像,此算子与histo_to_thresh 类似

auto_threshold(Image : Regions : Sigma : )   //Sigma 为平滑系数

二进制阈值,只能用于具有双峰直方图的图像。bin_threshold算子的更新版

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

参数说明:
Method:分割方法('max_separability':最大限度的可分性, 'smooth_histo':直方图平滑)
UsedThreshold(输出参数):自动阈值使用的阈值


它只能分割出灰度值高的亮区域,不能分割出灰度值低的暗区域

dual_threshold(Image : RegionCrossings : MinSize, MinGray, Threshold : )

参数说明:
Threshold :用于分割的阈值数值
MinSize:分割出来的区域的最小面积(即数像素的数目个数)
MinGray:分割出来的区域对应的原图中图像像素的最高灰度不能低于MinGray


滞后阈值

hysteresis_threshold(Image : RegionHysteresis : Low, High, MaxLength : )

参数说明:
Low:低于低阈值的像素点被抛弃
High:高于高阈值的像素点被接受,称为安全点
MaxLength :处在低阈值与高阈值中间的点称为潜在点,如果潜在点距离安全点小于MaxLength ,则将其变为安全点


局部阈值分割:该算法是一种文本二值化技术,为文档图像提供了良好的效果

local_threshold(Image : Region : Method, LightDark, GenParamName, GenParamValue : )

分水岭阈值

watersheds_threshold(Image : Basins : Threshold : )

算子描述:
第一步:计算出分水岭(不使用该参数Threshold ),分割的盆地和调用算子watersheds得到的盆地是相同的
第二步:如果被一个分水岭分割的相邻盆地与对应分水岭的高度差小于Threshold ,盆地依次合并。假设B1和B2分别是两个相邻盆地的最小灰度值,W是盆地对应分水岭的最小灰度值。当满足以下条件时,两个盆地合并:max{W-B1,W-B2}<Threshold 。由此得到的盆地存储在Basins 变量中。
极端条件:如果Threshold 为0,则watersheds_threshold类似于watersheds,但输出结果只有盆地无分水岭区域。
如果Threshold 为图像中最大灰度值,则输出的盆地只包含一个区域。


动态阈值,dyn_threshold的替代算子

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

(1)参数说明
MaskWidth、 MaskHeight:滤波的掩膜尺寸,掩模尺寸要大于缺陷宽度的2倍
StdDevScale:标准差乘数因子(简称标准差因子)
AbsThreshold:绝对阈值

关于参数StdDevScale(标准差因 子)的说明: 
当标准差因子StdDevScale ≥ 0 时,v(x,y) 取(StdDevScale ×标准差)和AbsThreshold 中较大的那个。 
当标准差因子StdDevScale < 0 时,v(x,y) 取(StdDevScale ×标准差)和AbsThreshold 中较小的那个。

注意:在亮暗过渡处,掩膜覆盖的像素的标准差较大,而在其他平缓的地方,标准差较小;因此最终采用的分割阈值随着掩膜在不断遍历图像的过程中,在(StdDevScale×标准差)和AbsThreshold 之间不断切换。

(2)var_threshold和dyn_threshold的区别和联系
var_threshold算子和dyn_threshold算子极为类似,不同的是var_threshold集成度更高,加入了“标准差×标准差因子”这一变量。如果参数StdDevScale = 0,那么两算子效果相同。


阈值分割提取字符

char_threshold(Image,HistoRegion:Characters:Sigma,Percent:Threshold)

原文地址:https://www.cnblogs.com/ybqjymy/p/14436078.html