Halcon图像分割

auto_threshold(Image : Regions : Sigma : )
* 对单通道图像做自动阈值(灰度直方图确定)分割
Sigma:灰度直方图高斯光滑核(标准差),光滑消除噪声,并且分割区域
binary_threshold(Image : Region : Method, LightDark : UsedThreshold)
* 使用二值阈值进行图像分割,用于背景色与前景色色差较为分明的图像,自动选取Sigma值进行高斯光滑处理,光滑直到灰度直方图只有一个最小值,这个最小值就是阈值;
Method:分割方法,只适用于具有双峰直方图的图像。
    smooth_histo方法提供了与bin_threshold操作符相同的功能。
    max_separability方法倾向于为UsedThreshold确定较小的值。此外,它对距离光谱其余部分很远的柱状图中孤立的薄峰不太敏感,而且通常比smooth_his更快
LightDark:提取前景色还是背景色 'light' 'dark'
char_threshold(Image, HistoRegion : Characters : Sigma, Percent : Threshold)
* 为提取字符执行阈值分割,适用于不是很明显的出现极小值的情况(色差相对小)
Image:用于提取字符的图像
HistoRegion:要提取字符所在的Region,可以和Image一样
Percent:灰度直方图中的灰度差的百分比

此方法关键在于找到灰度直方图中的最大值,在最大值的左侧寻找关键阈值,Threshold所对应的灰度值频率不能大于最大值频率乘以(100.0-Persent)
histogram[Threshold]*100.0 < histogram[maximum]*(100.0-Percent)
dyn_threshold(OrigImage, ThresholdImage : RegionDynThresh : Offset, LightDark : )
* 动态局部阈值分割图像,根据像素周围的情况来决定阈值 OrigImage:单通道原图像 ThresholdImage:用于对比局部阈值的图像,通常是原始图像的平滑版本(如mean_image、binomial_filter、gauss_filter等) RegionDynThresh:阈值分割后获得的区域 Offset:原图像与对比图像的像素值偏移量 LightDark:决定选取暗边界还是亮边界以及相似边界
'light' OrigImage >= ThresholdImage + Offset
'dark' OrigImage <= ThresholdImage - Offset
'equal' ThresholdImage - Offset <= OrigImage <= ThresholdImage + Offset
'not_equal' ThresholdImage - Offset > OrigImage or OrigImage > ThresholdImage + Offset
dual_threshold(Image : RegionCrossings : MinSize, MinGray, Threshold : )
* 通过阈值分割有符号图像(灰度值有正负之分),通常前面伴随着如diff_of_gauss,sub_image等这样的算子使用

通过sub_image对两帧图像做差,得到图三的图像,其中中亮部分小车灰度值大于零,暗部分小车灰度值小于零,使用dual_threshold进行分割得到图四。

dev_close_window ()
read_image (Traffic1, 'traffic1')
read_image (Traffic2, 'traffic2')
get_image_size (Traffic1, Width, Height)
dev_open_window (0, 0, 2 * Width, 2 * Height, 'black', WindowHandle)
convert_image_type (Traffic1, ImageConverted1, 'int2')
convert_image_type (Traffic2, ImageConverted2, 'int2')
sub_image (ImageConverted1, ImageConverted2, ImageSub, 1, 0)
dual_threshold (ImageSub, RegionDiff, 500, 20, 10)
var_threshold(Image : Region : MaskWidth, MaskHeight, StdDevScale, AbsThreshold, LightDark : )
* 根据掩膜局部均值和标准差来做与会分割
MaskWidth,MaskHeight:掩膜大小,在此区域求均值方差
StdDevScale:标准差因子
AbsThreshold:像素值与均值对比的最差值

StdDevScale>=0,则
v(x,y) = max(StdDevScale * d(x,y), AbsThreshold)
如果参数StdDevScale<0,则
v(x,y) = min(StdDevScale * d(x,y), AbsThreshold)

LightDark = 'light' 获得亮边界
Image(x,y) >= mean(x,y) + v(x,y)

LightDark = 'dark' 获得暗边界
Image(x,y) < mean(x,y) - v(x,y)

 

转载于:https://www.cnblogs.com/zhengzc/p/11342874.html

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值