Halcon入门基础——6、动态阈值分割dyn_threshold

dyn_threshold 动态阈值分割是指 从输入图像中选择像素满足阈值条件的那些区域;

通常需要先对原始图像的平滑滤波后的进行动态阈值分割(如mean_image、binomial_filter、gauss_filter等)。
dyn_threshold的效果类似于对原始图像进行高通滤波。

mask:
选择的掩模尺寸越大,找到的区域就越大。
mask 大小应该是要提取的对象直径的两倍左右。
Offset:
不要设置为0,因为0会导致产生太多的噪声小区域。
Offset 越大,提取的区域就越小。
建议设置在5和40之间。

后续可以通过调用connection来获得连通域。

实例如下:

*读图
read_image (Image, 'photometric_stereo/embossed_01')
get_image_size (Image, Width, Height)
### 关于 Halcon `dyn_threshold` 函数的使用说明 #### 函数概述 `dyn_threshold` 是 HALCON 中用于执行自适应阈值处理的功能,该操作依据输入图像及其均值图像来动态决定二值化过程中的阈值。这使得对于具有复杂光照条件或背景变化较大的场景下的图像分割更为有效[^1]。 #### 参数详解 - **Input Image (Image)**: 输入待处理的灰度级图片。 - **Mean Image (ImageMean)**: 对应位置像素点邻域内的平均亮度值构成的新图;一般通过对原图做平滑滤波获得。 - **Output Region (RegionDynThresh)**: 输出的结果区域对象,表示经过动态阈值得到的目标物前景部分。 - **Threshold Delta**: 设定一个固定差值Δ作为判断标准,即当某处实际强度减去其所在窗口内均值大于等于此参数时视为目标成分保留下来。 - **Mode ('lighter'/'darker'/'not_equal')**: 控制比较方式的选择——分别对应“更亮”、“较暗”以及两者皆可的情况。 ```cpp // C++ code example using the dyn_threshold operator in HALCON. HObject ho_Image, ho_MeanImage, ho_Regions; double ThresholdDelta = 15; // Set threshold delta value string Mode = "not_equal"; read_image(&ho_Image,"photometric_stereo/embossed_01"); mean_image(ho_Image,&ho_MeanImage,60,60); dyn_threshold(ho_Image,ho_MeanImage,&ho_Regions,ThresholdDelta,Mode.c_str()); ``` 上述代码片段展示了如何利用 `dyn_threshold` 来分离出特定特征如盲文字母等细节结构[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值