HALCON 算子 之 阈值分割算子

文章目录

  • 什么是阈值分割?
  • 为什么要阈值分割?
  • 如何进行阈值分割?
    • 全局
      • [threshold ------ 全局固定阈值分割](#threshold —— 全局固定阈值分割)
      • [auto_threshold ------ 全局自动阈值分割](#auto_threshold —— 全局自动阈值分割)
      • [fast_threshold ------ 快速全局阈值分割](#fast_threshold —— 快速全局阈值分割)
      • [watersheds_threshold ------ 分水岭盆地阈值分割](#watersheds_threshold —— 分水岭盆地阈值分割)
    • 局部
      • [dyn_threshold ------ 局部动态阈值分割](#dyn_threshold —— 局部动态阈值分割)
      • [var_threshold ------ 均值和标准差局部阈值分割](#var_threshold —— 均值和标准差局部阈值分割)
      • [local_threshold ------ 局部统计的阈值分割](#local_threshold —— 局部统计的阈值分割)

什么是阈值分割?

  • 在Halcon中,阈值分割是一种基于灰度、对比度等特征,将特定区域提取出来的图像处理技术
  • 简单来说,阈值就是一个指定的像素灰度值的范围 ,阈值分割则是将图像中的像素灰度值与该阈值进行比较,落在该范围内的像素称为前景,其余的像素称为背景。这样,图像就变成了只有黑与白(或特定颜色)两种颜色的二值图像或特定区域图像,便于后续的处理和分析。

为什么要阈值分割?

  • 简化图像处理:
    阈值分割可以将复杂的图像简化为二值图像或特定区域图像,从而简化后续的处理步骤。
  • 提取目标区域:
    在许多图像处理任务中,需要提取出特定的目标区域。阈值分割可以根据灰度值等特征将目标区域与背景区域分离开来,从而方便地提取出目标区域。
  • 减少计算量:
    将图像转换为二值图像或特定区域图像后,可以显著减少后续处理的计算量,提高处理速度。
  • 提高处理精度:
    通过选择合适的阈值,可以准确地分割出目标区域,从而提高图像处理的精度和准确性。
  • 适应不同场景:
    Halcon提供了多种阈值分割算子,如全局阈值分割、自动阈值分割、局部阈值分割等,可以适应不同的图像处理场景和需求。

如何进行阈值分割?

全局

threshold ------ 全局固定阈值分割

  • 利用全局阈值(中间分割线)分割图像,采用灰度区间g实现图像的全局分割,MinGray <= g <=MaxGray
csharp 复制代码
threshold(Image : Region : MinGray, MaxGray : )
  • 使用场景: 背景和前景对比度较高,且灰度分布简单的图像

  • 参数:

    • MinGray: 阈值区间灰度值下限,默认128
    • MaxGray: 阈值区间灰度值上限,默认255
  • 优点: 计算简单,运算效率高

  • 缺点: 对噪声敏感,对于灰度分布复杂或光照不均匀的图像分割效果可能不佳

  • 效果:

    • 分割前:
    • 分割后

auto_threshold ------ 全局自动阈值分割

  • 根据直方图决定的阈值分割图像
csharp 复制代码
auto_threshold(Image: Regions: Sigma:)
  • 使用场景: 适用于灰度直方图存在两个波峰的图像,能够自动找到最佳阈值进行分割
  • 参数:
    • Sigma:输入直方图的高斯滤波系数
  • 优点: 无需手动设定阈值,适用于多种图像
  • 缺点: 对于某些复杂图像,可能无法准确找到最佳阈值。
  • 效果:
    • 分割前:

    • 分割后:

fast_threshold ------ 快速全局阈值分割

  • 利用全局阈值快速将图像二值化
csharp 复制代码
fast_threshold(Image: Region: MinGray, MaxGray, MinSize:)
  • 使用场景: 需要快速分割图像且对分割精度要求不高的场合
  • 参数:
    • MinGray: 阈值区间灰度值下限
    • MaxGray: 阈值区间灰度值上限
    • MinSize: 提取的图像最小尺寸
  • 优点: 分割速度快,适用于实时处理
  • 缺点: 牺牲一定的分割精度

watersheds_threshold ------ 分水岭盆地阈值分割

  • 从一副图像中提取分界线和"盆地"。
csharp 复制代码
 watersheds_threshold(Image: Basins: Threshold:)
  • 使用场景: 适用于图像中存在多个连通区域且需要准确分割的场合
  • 参数:
    • Basins:分割黑斑区域
    • Threshold:输入分割灰度阀值
  • 优点: 能够处理复杂图像,分割效果直观。
  • 缺点: 容易产生过分割现象,对噪声敏感,计算复杂度较高。
  • 效果:
    • watersheds_threshold (ImageInvert, Basins, 100)

    • 分割前

    • 分割后

局部

dyn_threshold ------ 局部动态阈值分割

  • 利用区域阈值分割图像
csharp 复制代码
 dyn_threshold(OrigImage, ThresholdImage:RegionDynThresh: Offset, LightDark:)
  • 使用场景: 适用于背景不均匀或目标体局部亮度变化的图像。
  • 参数:
    • OrigImage :输入图像;
    • ThresholdImage:输入包含句柄阀值的图像;
    • RegionDynThresh :输出阀值切割的区域;
    • Offset:输入补偿值;
    • LightDark :输入提取哪个部分区域;
  • 优点: 能够适应背景变化,提高分割精度。
  • 缺点: 计算复杂度较高,需要两张图像。
  • 效果:
  • 分割前:

  • 分割后:

var_threshold ------ 均值和标准差局部阈值分割

  • 根据局域平均标准偏差分析将图像二值化
csharp 复制代码
 var_threshold(Image: Region:MaskWidth, MaskHeight, StdDevScale, AbsThreshold, LightDark:)
  • 使用场景: 适用于目标和背景灰度分布差异较大且对噪声不敏感的图像。
  • 参数:
    • MaskWidth: 用于平均值和偏差计算的掩码宽度
    • MaskHeight: 用于平均值和偏差计算的掩码高度
    • StdDevScale:灰度标准偏差值
    • AbsThreshold: 最小的灰度差别值
    • Threshold type :亮度类型
  • 优点: 能够较好地分开目标和背景,对不适合的参数设置不敏感。
  • 缺点: 参数设置较为复杂,需要一定的经验。
  • 效果:
    • 分割前

    • 分割后

local_threshold ------ 局部统计的阈值分割

csharp 复制代码
local_threshold(Image : Region : Method, LightDark, GenParamName, GenParamValue : )
  • 使用场景: 适用于背景复杂且需要利用局部统计特征进行分割的图像。

  • 参数:

    • Method :分割方法
    • LightDark : 提取前景还是背景
  • 优点: 能够适应局部背景变化,提高分割准确性。

  • 缺点: 计算复杂度较高,可能受到噪声的影响。

  • 效果:

    • 分割前

    • 分割后

相关推荐
LK_0730 分钟前
【Open3D】Ch.3:顶点法向量估计 | Python
开发语言·笔记·python
li星野41 分钟前
打工人日报#20251011
笔记·程序人生·fpga开发·学习方法
摇滚侠44 分钟前
Spring Boot 3零基础教程,yml配置文件,笔记13
spring boot·redis·笔记
QT 小鲜肉1 小时前
【个人成长笔记】在Ubuntu中的Linux系统安装 anaconda 及其相关终端命令行
linux·笔记·深度学习·学习·ubuntu·学习方法
QT 小鲜肉1 小时前
【个人成长笔记】在Ubuntu中的Linux系统安装实验室WIFI驱动安装(Driver for Linux RTL8188GU)
linux·笔记·学习·ubuntu·学习方法
急急黄豆1 小时前
MADDPG学习笔记
笔记·学习
Chloeis Syntax2 小时前
栈和队列笔记2025-10-12
java·数据结构·笔记·
QZ_orz_freedom3 小时前
学习笔记--文件上传
java·笔记·学习
摇滚侠3 小时前
Spring Boot 3零基础教程,整合Redis,笔记12
spring boot·redis·笔记
爱吃甜品的糯米团子3 小时前
Linux 学习笔记之 VI 编辑器与文件查找技巧
linux·笔记·学习