Halcon常用的几种阈值分割

您所在的位置:网站首页 halcon实例详解 Halcon常用的几种阈值分割

Halcon常用的几种阈值分割

2023-08-20 10:21| 来源: 网络整理| 查看: 265

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