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 : 提取前景还是背景
  • 优点: 能够适应局部背景变化,提高分割准确性。

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

  • 效果:

    • 分割前

    • 分割后

相关推荐
USER_A00124 分钟前
JavaScript笔记进阶篇01——作用域、箭头函数、解构赋值
javascript·笔记
次元工程师!2 小时前
JAVA-IO模型的理解(BIO、NIO)
java·笔记·学习·nio·bio·io模型
mit6.8242 小时前
[实现Rpc] 项目设计 | 服务端模块划分 | rpc | topic | server
网络·c++·笔记·rpc·架构
Pandaconda3 小时前
【新人系列】Python 入门(二十八):常用标准库 - 上
开发语言·经验分享·笔记·后端·python·面试·标准库
ThisIsClark5 小时前
【gopher的java学习笔记】Java中Service与Mapper的关系详解
java·笔记·学习
高精度计算机视觉6 小时前
如何用vscode断点调试Vue.js的项目
笔记
就爱学编程7 小时前
C语言编程笔记:文件处理的艺术
c语言·开发语言·笔记
大邳草民8 小时前
Math Reference Notes: 泰勒多项式
笔记·数学
doubt。8 小时前
【BUUCTF】BUU XSS COURSE 11
笔记·学习·安全·web安全·网络安全·web·xss
筑梦之路8 小时前
kafka学习笔记7 性能测试 —— 筑梦之路
笔记·学习·kafka