halcon图像分割之动态阈值分割

前言

传统固定阈值分割只适用于光照均匀的图像,对于光照不均匀导致的图像亮度不一致的场景无法使用,但使用动态阈值分割能够有效解决亮度不一致的问题。

1、动态阈值分割原理

为图像中每个像素或其邻域计算一个"动态"的局部阈值,而不是为整个图像使用单一的全局阈值。它能有效解决光照不均、背景灰度变化等问题。这个动态的局部阈值通常来源于另一个图像,这个图像是原图进行均值滤波等处理后的图像,相当于一个背景图,这个背景图的阈值就是变化的。

2、halcon算子应用

csharp 复制代码
dev_open_file_dialog ('read_image', 'default', 'default', Selection)
read_image (Image, Selection)
mean_image (Image, ImageMean, 15, 15)
dev_set_color ('red')
threshold (Image, Region, 128, 255)
dyn_threshold (Image, ImageMean, RegionDynThresh, 5, 'light')

动态阈值分割dyn_threshold 算子总共有5个参数,如下:

第1个参数是输入图像

第2个参数是均值滤波后的图像

第3个参数是输出的阈值分割后的区域

第4个参数是偏移量

第5个参数是提取目标的类型

第4、5两个参数的原理如下:

当参数5= 'light' 时(目标比背景亮时使用),提取比背景亮的区域:

如果 Orig >= (Thresh + Offset),则该像素被选中,属于输出区域,这个条件意味着:原始图像的灰度显著高于(至少高出 Offset)其局部背景估计值。

当参数5 = 'dark' 时(目标比背景暗时使用),提取比背景暗的区域:

如果 Orig <= (Thresh - Offset),则该像素被选中,属于输出区域,这个条件意味着:原始图像的灰度显著低于(至少低于 Offset)其局部背景估计值

3、固定阈值分割图像处理后效果

1)处理前

2)处理后

可以明显的看出亮度比较暗的部分直接就被去掉了,这就是固定阈值的缺陷。

4、动态阈值分割图像处理后效果

1)处理前

2)处理后

可以看出目标还是能够得到保留。

马工撰写的年入30万+C#上位机项目实战必备教程(点击下方链接即可访问文章目录)

1、《C#串口通信从入门到精通》

2、《C#与PLC通信从入门到精通 》

3、《C# Modbus通信从入门到精通》

4、《C#Socket通信从入门到精通 》

5、《C# MES通信从入门到精通》

6、《winform控件从入门到精通》

7、《C#操作MySql数据库从入门到精通》

以上教程CSDN订阅已超过2000+~

相关推荐
大明二代5 小时前
从 RAG 到有记忆的 Agent:Mastra Memory 与 PostgreSQL 实战
前端·javascript·人工智能
zhangyy04235 小时前
agent 说"做完了",它真做完了吗:16 个任务、四种判据的一次实测
人工智能
鶴哥只手遮天5 小时前
Spring AI 2.0.1 深度解析-第 22 章 Spring Boot 集成:自动配置、Properties 与条件装配
java·人工智能·开源
程序员如山石5 小时前
为什么要用AI开发
人工智能
音符犹如代码5 小时前
DeepSeek-V4.1-Flash-1017 上手实测:3D 直出,效果到底如何
人工智能·3d·ai·ai编程
kyle~5 小时前
系统设计 --- 基于运动相位的时间域稳像设计
计算机视觉·机器人·传感器
SEO_juper6 小时前
hreflang 审计工具:外贸多语言站谷歌SEO的隐性杀手
开发语言·人工智能·爬虫·python·seo
QYRdata6 小时前
机器人3D视觉感知赛道爆发 2026-2032年复合增长率达81.7%
人工智能·3d·机器人·服务发现·恒州博智
内容营销专家刘鑫炜6 小时前
主流 AI 大模型眼中的“刘鑫炜”之千问篇
人工智能
打工仔折腾 AI6 小时前
从零开始大模型微调:基于 PyTorch 与 ChatGLM 的 LoRA 实践指南
人工智能·pytorch·后端·python·深度学习·性能优化·ai agent 实战