Halcon常用的几种阈值分割 |
您所在的位置:网站首页 › halcon实例详解 › Halcon常用的几种阈值分割 |
Halcon常用的几种阈值分割
1.threshold(Image : Region : MinGray, MaxGray : )2.binary_threshold(Image : Region : Method, LightDark : UsedThreshold)3.dyn_threshold(OrigImage, ThresholdImage : RegionDynThresh : Offset, LightDark : )4.var_threshold(Image : Region : MaskWidth, MaskHeight, StdDevScale, AbsThreshold, LightDark : )5.auto_threshold(Image : Regions : Sigma : )
1.threshold(Image : Region : MinGray, MaxGray : )
函数说明: 全局阈值分割,适用于环境稳定,特征与背景存在明显的灰度差场合 函数参数: Image(输入图像) Region(输出区域) MinGray(输入最小灰度值,范围0-255) MaxGray(输入最大灰度值,范围0-255) 函数实例: 原图… dev_update_off () dev_close_window() read_image (Coins001, 'coins_001.jpg') get_image_size (Coins001, Width, Height) dev_open_window (0, 0, Width, Height, 'black', WindowHandle) rgb1_to_gray (Coins001, GrayImage) dev_display (GrayImage) *进行全局阈值分割 threshold (GrayImage, Region,90, 255) dev_display (Region)结果效果图: 2.binary_threshold(Image : Region : Method, LightDark : UsedThreshold)函数说明: 自动全局阈值分割,两种法:‘max_separability’和’smooth_histo’,这两种方法都应该只用于具有双峰直方图的图像。 函数参数: Image(输入图像) Region(输出区域) Method(分割方法)有’max_separability’、‘smooth_histo’两种法 LightDark(提取目标是亮或者暗)有’dark’,'light’可选 UsedThreshold(使用的阈值) 函数实例: 原图… dev_update_off () dev_close_window() read_image (Image1, '1.jpg') get_image_size (Image1, Width, Height) dev_open_window (0, 0, Width, Height, 'black', WindowHandle) dev_display (Image1) *进行自动全局阈值分割,使用smooth_histo方法,提取dark部分 binary_threshold (Image1, Region1, 'smooth_histo', 'dark', UsedThreshold) dev_display (Region1)结果效果图: 3.dyn_threshold(OrigImage, ThresholdImage : RegionDynThresh : Offset, LightDark : )函数说明: 局部阈值分割,一般与滤波算子mean_image (输入图像, 输出区域, 滤波参数, 滤波参数),一般滤波值参数= 2*被选物像素宽度 + 3,根据实际情况而定。 函数参数: OrigImage(输入图像) ThresholdImage(输入局部阈值的图像)就是mean_image 算子的输出区域 RegionDynThresh(输出区域) Offset(输入ThresholdImage 的偏移量 ) 建议值: 1.0、3.0、5.0、7.0、10.0、20.0、30.0 LightDark(输入提取亮区、暗区或类似区域?) 值列表:‘dark’、‘equal’、‘light’、‘not_equal’ 函数实例: 原图… dev_update_off () dev_close_window() read_image (Image1, '2.jpg') get_image_size (Image1, Width, Height) dev_open_window (0, 0, Width, Height, 'black', WindowHandle) dev_display (Image1) *进行局部局阈值分割 mean_image (Image1, ImageMean, 50, 50) dyn_threshold (Image1, ImageMean, RegionDynThresh,10, 'not_equal') dev_display (RegionDynThresh)结果效果图: 4.var_threshold(Image : Region : MaskWidth, MaskHeight, StdDevScale, AbsThreshold, LightDark : )函数说明: 通过局部均值和标准偏差分析对图像进行阈值化,可以在不均匀、嘈杂或照明不均匀的背景上分割区域。 函数参数: Image(输入图像) Region(输出区域) MaskWidth(输入平均值和偏差计算的掩码宽度)MaskWidth >= 1 MaskHeight(输入平均值和偏差计算的掩码高度) MaskHeight >= 1 StdDevScale(输入灰度值标准偏差的因子) AbsThreshold(输入与平均值的最小灰度值差) LightDark(输入阈值类型) 值列表:‘dark’、‘equal’、‘light’、‘not_equal’ 函数实例: 原图… dev_update_off () dev_close_window() read_image (Image1, '3.jpg') get_image_size (Image1, Width, Height) dev_open_window (0, 0, Width, Height, 'black', WindowHandle) dev_display (Image1) *通过局部均值和标准偏差分析对图像进行阈值化 var_threshold (Image1, Region, 15, 15, 1.01, 40, 'dark') dev_display (Region)效果结果图: 5.auto_threshold(Image : Regions : Sigma : )函数说明: 使用从其直方图确定的阈值分割图像。 1.计算灰度直方图。 2.高斯平滑后从直方图提取最小值。 3.根据提取的最小值进行阈值分割,sigma越大提取区域越少。 函数参数: Image(输入图像) Regions(输出图像) Sigma(输入Sigma 用于直方图的高斯平滑)0.0 ≤ Sigma ≤ 100.0 函数实例: 原图… dev_update_off () dev_close_window() read_image (Image1, 'D:/aa/4.jpg') get_image_size (Image1, Width, Height) dev_open_window (0, 0, Width, Height, 'black', WindowHandle) dev_display (Image1) *使用从其直方图确定的阈值分割图像 auto_threshold (Image1, Regions, 5) dev_display (Regions)结果效果图: |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |