当前位置: 首页 > ds >正文

传统图像分割方法:阈值分割、Canny检测

传统图像分割方法

1、阈值分割

它利用图像中要提取的目标与背景在灰度上的差异,通过设置阈值来把像素分成若干类,从而实现目标与背景的分离。阈值分割有以下几种方法:(1)固定阈值分割(2)迭代阈值分割(3)大津法OTSU(4)自适应阈值分割

1.1固定阈值分割

将灰度值大于某一阈值的像素点设置为255,而小于等于该阈值的点设置为0。函数说明:函数threshold()可以将灰度图像转换为二值图像,图像完全由像素0和255构成呈现出只有黑白两色的视觉效果。经过二值化处理后的图像(Fix Iamge),仅包含黑白像素,用于分离目标与背景。

1.2固定阈值分割缺点

当图像存在光照不均匀时,全局固定阈值无法适应不同区域的亮度变化。例如,同一物体在明亮区域和阴影区域的灰度值差异较大,使用单一阈值可能导致部分区域过分割(误将背景划为前景)或欠分割(未能完全提取目标)。

2 边缘检测

边缘检测算法(如Canny、Sobel)通过梯度变化识别目标边界,而边缘通常对光照变化具有鲁棒性。结合边缘信息,可以约束阈值分割的范围,例如:仅在边缘附近进行局部阈值调整,避免全局阈值受光照不均的影响。通过边缘位置确定感兴趣区域(ROI),减少背景干扰。

边缘检测的目的就是找到图像中亮度变化剧烈的像素点构成的集合,表现出来往往是轮廓。如果图像中边缘能够精确的测量和定位,就意味着实际的物体能够被定位和测量,包括物体的面积、物体的直径、物体的形状等就能被测量。

2.1 Canny边缘检测

Canny边缘检测在一阶微分算子的基础上,增加了非最大值抑制和双阈值两项改进。利用非极大值抑制不仅可以有效地抑制多响应边缘,而且还可以提高边缘的定位精度;利用双阈值可以有效减少边缘的漏检率。

Canny边缘检测主要分四步进行:去噪声、计算梯度与方向角、非最大值抑制、滞后阈值化。

其中前两步,先用一个高斯滤波器对图像进行滤波,然后用Sobel水平和竖直检测子与图像卷积,来计算梯度和方向角。

第三步:非极大值抑制是一个关键步骤,目的是细化边缘,消除梯度方向上的非最大值,只保留最强的边缘像素。

(1)二值化效果:边缘为白色(255),背景为黑色(0),形成高对比度的黑白图像。边缘线条单像素宽,清晰且连续

(2)输入是一张人脸照片,Canny检测后会将轮廓(如眼睛、鼻子、嘴唇)、头发边缘等转换为白色细线,其余区域为黑色。

2.2 滞后阈值化

由于噪声的影响,经常会在本应该连续的边缘出现断裂的问题。滞后阈值化的目的是通过双阈值策略解决以下问题:

(1)筛选真实边缘:排除噪声引起的伪边缘。

(2)连接断裂边缘:确保弱边缘在合理范围内被保留,提升边缘连续性。

(3)平衡灵敏度与鲁棒性:避免单一阈值导致的过分割(保留过多噪声)或欠分割(丢失真实边缘)。

 具体实现步骤(1)设定双阈值:

高阈值:用于直接标记强边缘(确信为真实边缘的像素)。

低阈值:用于标记弱边缘(可能是真实边缘的候选像素)。

(2)分类处理像素:

强边缘:直接保留为最终边缘。弱边缘:仅当与强边缘连通时保留。非边缘:直接舍弃。

边缘跟踪:从强边缘出发,沿梯度方向搜索相邻的弱边缘,若弱边缘与强边缘连通,则将其提升为强边缘。

2.3 Canny边缘检测优点

1. 高精度边缘检测(单像素宽边缘)。
2. 抗噪声能力强(高斯滤波预处理)。
3. 能检测弱边缘(双阈值跟踪)

http://www.xdnf.cn/news/9267.html

相关文章:

  • AI测试用例生成系统设计与实现:融合多模态、OCR解析与知识库增强
  • EOFError: Unexpected EOF while reading bytes报错解决
  • 题目 3313: 蓝桥杯2025年第十六届省赛真题-电池分组
  • npm run build后将打包文件夹生成zip压缩包
  • Abstract Factory(抽象工厂)
  • FlagOS 新里程:开源面向多种硬件架构的统一AI 编译器 FlagTree
  • element-ui upload 组件源码分享
  • Android Cameara2 + MediaRecorder 完成录像功能
  • Prompt工程:解锁大语言模型的终极密钥
  • 解锁编程新境界:深入剖析现代编程技术与实践
  • spring4第2课-ioc控制反转
  • STM32CubeMX配置使用通用定时器产生PWM
  • 加密货币犯罪的涉案金额如何计算?
  • 编写一个算法frequency,统计在一个输入字符串中各个不同字符出现的频度。用适当的测试数据来验证这个算法
  • 打卡第29天:类的定义和方法
  • PDBfixer:蛋白质结构修复工具
  • CVE-2025-3248
  • 华为OD机试真题——区间交集(2025B卷:200分)Java/python/JavaScript/C/C++/GO最佳实现
  • 知识宇宙-职业篇:软件测试工程师
  • Java—— 多线程 第一期
  • 存储引擎系列--LSM不同Compaction策略性能分析对比
  • STM32:Modbus通信协议核心解析:关键通信技术
  • 【大模型面试每日一题】Day 29:简单介绍一下混合精度训练的技术要点及潜在风险
  • Kubernetes Service 类型与实例详解
  • Mybatis中的两个动态SQL标签
  • (先发再改)测试流程标准文档
  • 【面试题】如何测试即时通信功能:A给B发送一条了信息:hello
  • ‌加密 vs 电子签名:公钥私钥的奇妙冒险
  • 大数据学习(121)-sql重点问题
  • IP2366调试问题总结