【Halcon】图像分割中的 regiongrowing 与dyn_threshold 动态阈值 算法详解对比

图像分割中的 regiongrowing 与动态阈值算法详解对比

在使用 HALCON 进行图像处理时,图像分割是最常见也最关键的操作之一。本文将深入讲解 regiongrowing 算子的原理与使用方法,并与另一常见方法——动态阈值 (dyn_threshold) 进行详细对比,帮助你根据不同应用场景选择合适的分割策略。


一、regiongrowing 算子详解

1. 算子功能

regiongrowing 是基于区域生长的分割方法,能将图像中灰度值相近的相邻像素块合并成一个连通区域,适用于灰度变化平缓、结构清晰的目标提取。

2. 算子格式

regiongrowing(Image : Regions : Row, Column, Tolerance, MinSize)
参数说明:
  • Image:输入的单通道图像(支持 byte, int1, int2, real 等类型)
  • Regions:输出的区域集合(Region数组)
  • Row, Column:指定栅格大小(必须为奇数),控制比较粒度,默认通常为 3
  • Tolerance:灰度值差异容差,决定是否合并相邻块
  • MinSize:过滤小区域的最小像素数阈值

3. 算法原理

  1. 将图像划分为 Row x Column 的小块;
  2. 比较相邻块的中心像素灰度值;
  3. 若差值小于等于 Tolerance,则合并区域;
  4. 最后剔除面积小于 MinSize 的区域。

4. 示例代码

read_image(Image, 'fabrik')
mean_image(Image, Mean, 5, 5)
regiongrowing(Mean, Regions, 5, 5, 6.0, 100)

二、dyn_threshold 算子简介

1. 功能概述

动态阈值通过比较当前像素与模糊背景图的灰度差异,实现前景/背景分离,适用于背景不均但结构明显的目标提取。

2. 算子格式

dyn_threshold(Image, Background, RegionDynThresh, Threshold, 'light')
  • Image:原图
  • Background:模糊图像或局部平均图像
  • RegionDynThresh:输出的前景区域
  • Threshold:差值阈值(像素 - 背景 > 阈值 即为前景)

3. 示例代码

mean_image(Image, Background, 15, 15)
dyn_threshold(Image, Background, RegionDynThresh, 10, 'light')

三、两者详细对比

特性regiongrowingdyn_threshold
核心思想从种子点开始区域扩展前景/背景灰度差判断
操作单位块级别区域合并单像素灰度比较
是否考虑连通性
是否自动生长
是否依赖模糊图像❌(可选预处理)✅(必须)
输出结果多区域(Region数组)二值区域(Region)

使用场景对比

场景更适合 regiongrowing更适合 dyn_threshold
背景复杂、目标灰度一致
背景光照不均匀
连通区域提取需求强
实时性能要求

类比通俗理解

  • regiongrowing 类似“从一点开始涂色”,相近颜色会不断扩展;
  • dyn_threshold 更像是“背景图减原图”,亮出前景。

四、总结

对比维度regiongrowingdyn_threshold
连通区域分割
灰度不均背景
算法逻辑局部相似性扩张背景减法式阈值
应用举例焊点、颗粒提取字符、污点检测

建议:

  • 若需区域结构连通且灰度一致,可选 regiongrowing
  • 若背景不均,目标明显,可用 dyn_threshold

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/news/907548.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker部署项目无法访问,登录超时完整排查攻略

项目背景:迁移前后端应用,prod环境要求保留443端口,开发环境37800端口,后端容器端口为8000,前端为80,fastAPI对外端口为41000 生产环境部署在VM01,开发环境部署在VM03,在VM01配置nginx转发 [r…

充电便捷,新能源汽车移动充电服务如何预约充电

随着新能源汽车的普及,充电便捷性成为影响用户体验的关键因素之一。传统的固定充电桩受限于地理位置和数量,难以完全满足用户需求,而移动充电服务的出现,为车主提供了更加灵活的补能方式。通过手机APP、小程序或在线平台&#xff…

探索C++标准模板库(STL):从容器到底层奥秘-全面解析String类高效技巧(上篇)

前引:在现代软件开发中,字符串处理是几乎所有程序的核心需求之一。无论是文本解析、网络通信,还是用户交互,高效且安全的字符串操作能力直接决定了代码的质量与可维护性。而C标准模板库(Standard Template Library, ST…

Python爬虫实战:抓取百度15天天气预报数据

🌐 编程基础第一期《9-30》–使用python中的第三方模块requests,和三个内置模块(re、json、pprint),实现百度地图的近15天天气信息抓取 记得安装 pip install requests📑 项目介绍 网络爬虫是Python最受欢迎的应用场景之一&…

HTML常见事件详解:从入门到实战应用

前言 在Web开发中,事件是用户与网页交互的核心机制。HTML事件让我们能够响应用户的各种操作,如点击、鼠标移动、键盘输入等。掌握HTML事件是前端开发的基础技能之一,本文将深入探讨HTML中的常见事件类型及其实际应用。 HTML事件概览总结 H…

模具制造业数字化转型:精密模塑,以数字之力铸就制造基石

模具被誉为 “工业之母”,是制造业的重要基石,其精度直接决定了工业产品的质量与性能。在工业制造向高精度、智能化发展的当下,《模具制造业数字化转型:精密模塑,以数字之力铸就制造基石》这一主题,精准点明…

深度解读漏洞扫描:原理、类型与应用实践

在网络安全领域,漏洞就像隐藏在系统中的定时炸弹,随时可能被攻击者利用,导致数据泄露、服务瘫痪等严重后果。而漏洞扫描作为发现这些潜在威胁的 “侦察兵”,是保障网络安全的重要防线。本文将全面介绍漏洞扫描的相关知识&#xff…

[HNCTF 2022 Week1]silly_zip

下载附件 解压发现需要密码 用010打开看看,发现是伪加密 改成00点击保存 解压后得到图片 感觉图片看着怪怪的,修改一下高度看看有没有其他线索 把47改成78 最后得到flag

Facebook 的隐私保护措施是否足够?技术观点

在数字时代,隐私保护成为了公众关注的焦点,尤其是对于拥有数十亿用户的社交媒体巨头 Facebook 来说,其隐私保护措施的有效性更是备受瞩目。本文将从技术角度探讨 Facebook 的隐私保护措施是否足够。 数据收集与使用 Facebook 收集用户数据的…

cocosCreator 1.8 升级到 2.4

现在负责的一个运营中的商业项目,使用的是 cocosCreator1.8,之前没有做好设计,所以东西都是直接加载在内存中的,到了现在性能问题逐渐暴露出来,讨论之后想进行引擎升级,升级到cocosCreator 2.4。 官方的升…

ubuntu 制作 ssl 证书

安装 openssl sudo apt install openssl 生成 SSL 证书 # 生成私钥 (Private Key) openssl genrsa -out private.key 2048 在当前目录生成 private.key # 生成证书签名请求 (CSR - Certificate Signing Request) openssl req -new -key private.key -out certificate.csr -…

【Java基础-环境搭建-创建项目】IntelliJ IDEA创建Java项目的详细步骤

在Java开发的世界里,选择一个强大的集成开发环境(IDE)是迈向高效编程的第一步。而IntelliJ IDEA无疑是Java开发者中最受欢迎的选择之一。它以其强大的功能、智能的代码辅助和简洁的用户界面,帮助无数开发者快速构建和部署Java项目…

WEB3——什么是ABI

怎么获得ABI? 在编译完合约后,可以在左边下面点击复制ABI ABI(Application Binary Interface,应用二进制接口)是用来让前端或服务端 JavaScript 代码与智能合约进行交互的桥梁,它描述了合约的函数、事件和…

移动安全Android——客户端数据安全

本地文件权限配置 测试流程 (1)手机运行待测APP应用,adb执行命令找到APP包名 adb shell dumpsys activity top|findstr ACTIVITY (2)adb shell 进入设备,以Root权限进入/data/data/package包名目录下 c…

拉普拉斯噪声

1. 概念 拉普拉斯噪声是一种连续概率分布生成的随机噪声,其核心特点是符合拉普拉斯分布。这种噪声被特意添加到数据(尤其是查询结果或统计量)中,以实现差分隐私这一严格的隐私保护框架。 核心目的: 在保护数据集中的个…

django项目开启debug页面操作有数据操作记录

在项目的主文件中setting中配置 """ Django settings for ProjectPrictice project.Generated by django-admin startproject using Django 3.0.1.For more information on this file, see https://docs.djangoproject.com/en/3.0/topics/settings/For the ful…

【科研绘图系列】R语言绘制森林图(forest plot)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载导入数据数据预处理画图系统信息介绍 本文介绍使用R语言绘制森林图(forest plot)的方法。首先加载必要的R包(grid、forestploter、openxlsx、stringr),导入并预处…

MySQL-8.0.42 主从延迟常见原因及解决方法

目录 1 查看从库延时方法 2 如何分析主从延迟 3 主从延迟的常见原因及解决方法 1 查看从库延时方法 mysql> show slave status \G *************************** 1. row *************************** Slave_IO_Running: Yes #两个yes说明主从复制正常 …

Kotlin 活动事件通讯跳转深度讲解

在 Android 开发的浩瀚海洋中,活动(Activity)间的事件通讯与跳转犹如构建复杂应用程序的桥梁与纽带,而 Kotlin 语言的加入,更是为这一过程注入了简洁、优雅与高效的活力。本文将深入剖析 Kotlin 开发中安卓活动事件通讯跳转的方方面面,从基础概念到高级技巧,从代码示例到…

[FreeRTOS- 野火] - - - 临界段

一、介绍 临界段最常出现在对一些全局变量进行操作的场景。 1.1 临界段的定义 临界段是指在多任务系统中,一段需要独占访问共享资源的代码。在这段代码执行期间,必须确保没有任何其他任务或中断可以访问或修改相同的共享资源。 临界段的主要目的是防…