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

NEFU数字图像处理(3)图像分割

一、图像分割的基本概念

1.1专有名词

前景和背景

在图像分割中,我们通常需要将图像分为前景和背景两个部分。前景是指图像中我们感兴趣、要分割出来的部分,背景是指和前景不相关的部分。例如,对于一张人物照片,人物就是前景,而周围环境则是背景。

区域

区域是指图像中一块连通的像素区域,这些像素具有相似的特征 ,即像素的连通集合。

 像素间的连通性

在数字图像处理中,像素间的连通性指的是像素之间的关系。在一幅二值图像中,我们可以将所有像素分为两个类别:黑色和白色。如果两个像素之间是相邻的,并且属于同一个类别,则称它们是连通的。连接的方式可以为4连通和8连通。

  • 4连通性:一个像素与它上下左右四个相邻像素连通。
  • 8连通性:一个像素与它上下左右和对角线八个相邻像素连通。

连通路径

像素间的连通性指的是像素之间是否有连接的路径。如果两个像素之间存在一条路径,使得这些路径完全由同一个集合中的像素构成,

 1.2概念

图像分割是根据图像的灰度、颜色、纹理或边缘等特征,将图像划分成若干个区域的过程,每个区域代表被成像的一个物体(或部分)

 1.3图像分割的依据

图像分割的依据:各区域具有不同的特性(如灰度、颜色、纹理等)。

灰度图像分割的依据:基于相邻像素灰度值的不连续性和相似性

1) 不连续性——不连续性是基于特性(如灰度)的不连续变化分割图像,如边缘检测

2) 相似性——根据制定的准则将图像分割为相似的区域,如阈值处理、区域生长

 1.4图像边缘

含义:图像中一个区域的结束和另一个区域的开始,图像中相邻区域之间的像素集合
构成了图像的边缘。

图像的边缘有方向和幅度两个属性,沿边缘方向的像素点变化平缓,而垂直于边缘方向的像素点变化剧烈。

相关例题(不重要)

算子的边缘检测效果分析:


 

二、灰度阈值分割

2.1概述

适用的图像:物体(前景)与背景在灰度上有较大差异

基本思想:提取物体与背景在灰度上的差异,把图像分为具有不同灰度级的目标区域和背景区域

2.2基本原理

2.3步骤

注意:step1确定适合的阈值是关键,阈值的选择将直接影响分割效果。

2.4阈值类型

全局阈值:选取的阈值仅与各个像素的灰度有关。


局部阈值:选取的阈值与像素本身及其邻域的某种局部性质(如像素的梯度值等)有关。即除了利用像素自身的性质外,还可借助像素邻域的局部性质来确定阈值


动态阈值(或自适应阈值):选取的阈值与像素的位置(坐标)有关

2.5确定灰度阈值的常用方法

利用灰度直方图确定阈值

通过人眼的观察,应用人对图像的先验知识,在分析图像直方图的基础上,人工选出合适的阈值。

基于阈值的图像分割方法的基本原理是提取物体与背景在灰度上的差异,把图像分为具有不同灰度级的目标区域和背景区域。

该方法主要适用于目标物体与背景之间具有较高对比度,两者分别占据不同的灰度级范围,灰度对比较强,此时图像的灰度直方图呈现明显的双峰特性(分别对应背景和目标物体),或明显的多峰特性(分别对应背景和多个目标物体)

可以在相邻两峰之间的谷底处选取一个灰度值作为阈值,进行分割

采用阈值分割方法分割图像时,当存在照明不均、突发噪声等因素或背景的灰度变化较大时,整幅图像不存在合适的单一阈值,这时可将图像分块,对每块根据图像局部特征采用不同的阈值。

迭代法确定最优阈值


 

关于初始阈值T的选择原则:

  • 当目标物体与背景的面积相当时,可将初始阈值T置为整幅图像的灰度平均值;
  • 当目标物体与背景的面积相差较大时,可将初始阈值T,置为最大灰度值与最小灰度值的中间值。

概念补充:分割误差

一部分目标物体像素被错分为背景,或者一部分背景像素被错分为目标物体

利用最小化误差概率确定最优阈值

基本思想:选择一个阈值T,使得划分像素时所产生的总的分类误差概率最小

 原理

 结论

当图像中目标和背景像素点的灰度值呈正态分布且标准偏差相等、目标和背景像素点比
例相等时,最佳分割阈值就是目标和背景像素点的灰度均值的平均。


采用单阈值的阈值分割方法用全局阈值来分割图像。
当一幅图像的直方图呈现明显双峰时,选择谷底作为阈值以获取良好的分割效果。

最大类间方差法确定最优阈值(Otsu法)

该方法确定最佳阈值T的准则是:使得阈值分割后的两个像素类(一个是前景目标物体像素类,另一个是背景像素类)的类间方差最大

结论

基于0tsu方法的阈值分割是否有效主要取决于目标和背景区域之间是否有足够的对比度 

 直方图变换法(一种局部阈值方法)

 ​​例如,可以作出只具有低梯度值的像素的直方图,即对梯度大的像素赋予权值0,而梯度小的像素赋予权值1。新直方图中对应的波峰基本不变,但由于减少了边界点,所以波谷应比原直方图更深。

动态阈值法


三、基于区域的分割

传统的区域分割算法有区域生(增)长法和区域分裂合并法。

基于阈值的图像分割方法适用于含噪声较少的简单图像,尤其是对物体(前景)与背景在灰度上有较大差异的图像效果。

3.1区域生(增)长法

定义:根据事先定义的准则将像素或者子区域聚合成更大区域的过程。
基本思想:开始时确定一个或多个像素点作为种子,然后按某种相似性准则增长区域,逐步生成具有某种均匀性的空间区域,将相邻的具有相似性质的像素或区域归并从而逐步增长区域,直至没有可以归并的点或其它小区域为止

区域内像素的相似性度量可以包括平均灰度值、纹理、颜色等信息。

基本步骤:

 举例

3.2 区域分裂与合并法

基本思想:按照某种一致性准则,不断地分裂或合并区域。当一个区域不满足一致性准则时,将其分裂成大小相等且互不重叠的四个子区域。当任意两个相邻区域满足一致性准则时,可将其合并为一个大区域。


通常是先区域分裂,再区域合并,也可以分裂和合并同时进行,最后得到图像的分割结果。

举例

四、二值图像的轮廓提取与轮廓跟踪

轮廓提取和轮廓跟踪的目的:获取目标区域的外部轮廓特征,为形状分析和目标识别做准备

图像分割后的结果通常是一幅二值图像,所有目标区域都被赋予同一种灰度值(黑或白),背景
区域被赋予另一种灰度值(白或黑)

4.1二值图像的轮廓提取:
 

4.2二值图像的轮廓跟踪:

 

五、模板匹配

用一幅已知的较小的图像(称为模板图像)与一幅较大的原始图像进行比较,来确定在原始图像中是否存在与该模板图像相同或相似的区域,若这样的区域存在,可确定其位置并提取该区域。

常用的模板匹配方法:

  • 相关法
  • 误差法

 5.1相关法

结论:

模板越大,匹配速度越慢;模板越小,匹配速度越快。

5.2误差法

六、图像表示

6.1概述

图像表示分成边界表示(如链码、边界分段、多边形近似和标记图等)和区域表示(如四叉树、骨架等)两大类。

  • 边界表示关心的是图像中区域的形状特征
  • 区域表示则倾向于反映区域的灰度、颜色、纹理等特征的特点

 6.2边界表示

链码

定义:
1)链码是一种边界的编码表示法。
2)用边界的方向作为编码依据。为简化边界的描述,一般描述的是边界点集。

 

自然编码表示

举例

边界分段

定义:

将边界分成若干段,然后分别对每一段进行表示,从而降低了边界的复杂度,并简
化表示过程,尤其是当边界具有多个凹点的时候这种方法更为有效。

 

问题:
--噪声的影响,导致出现零碎的划分。
解决的方法:
--先平滑边界,或用多边形逼近边界,然后再分段

 多边形近似

  • 多边形近似比链码、边界分段更具有抗噪声干扰的能力。
  • 对封闭曲线而言,当多边形的线段数与边界上点数相等时,多边形可以完全准确的表达边界。

 

最小周长边界算法 

 标记图

标记是边界的一维表达
标记图的基本思想:将原始的二维边界用一个一维函数来表示,以达到降低表达难度的效果。

 

 骨架

 

6.3边界描述

边界长度

边界长度是边界所包围的区域的轮廓的周长

  • 4-连通边界:其长度为边界上像素点个数;
  • 8-连通边界:其长度为对角码个数乘上√2再加上水平和垂直像素点的个数的和。

边界直径

 

形状数

形状数:基于4-链码的边界描述符
定义:值最小的4-链码的一阶差分码

统计矩


 

6.4区域描述

区域面积
 

区域重心

区域周长

纹理

 

纹理:
反映像素灰度的空间分布属性的图像特征,通常表现为局部不规则但宏观有规律性
常用的纹理描述方法:

  • 统计法:基于图像的灰度直方图的特性
  • 频谱法:

统计法 

 

 频谱法

 

相关文章:

  • HarmonyOS开发:基于http开源一个网络请求库
  • 双热点机制结合。5+铜死亡+铁死亡相关基因生信思路
  • 求职中遇到的性格测试,你看不出来的陷阱
  • 【面试精选】00后卷王带你三天刷完软件测试面试八股文
  • 开源播放器GSYVideoPlayer的简单介绍及播放rtsp流的优化
  • Java零基础入门-注释
  • Mac PS2023/2024储存窗口黑屏不显示 解决方法
  • 【正则表达式】中的“\b“
  • 【计算系统】5分钟了解超算,高性能计算,并行计算,分布式计算,网格计算,集群计算以及云计算的区别
  • DQN强化学习
  • CentOS 7升级gcc/G++版本
  • 系列四、全局配置文件mybatis-config.xml
  • 【LLM】大语言模型高效微调方案Lora||直击底层逻辑
  • 箭头函数和普通函数有什么区别
  • 揭秘!AI加持双十一电商盛宴,带你解锁更多营销新玩法
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • 〔开发系列〕一次关于小程序开发的深度总结
  • gitlab-ci配置详解(一)
  • HomeBrew常规使用教程
  • HTML-表单
  • mysql 数据库四种事务隔离级别
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • 分享一份非常强势的Android面试题
  • 入口文件开始,分析Vue源码实现
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 手写一个CommonJS打包工具(一)
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 学习笔记:对象,原型和继承(1)
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • ###C语言程序设计-----C语言学习(3)#
  • #Ubuntu(修改root信息)
  • #微信小程序:微信小程序常见的配置传值
  • (8)STL算法之替换
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (第二周)效能测试
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转)ObjectiveC 深浅拷贝学习
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • .net core 控制台应用程序读取配置文件app.config
  • .NET Core 项目指定SDK版本
  • .Net MVC + EF搭建学生管理系统
  • .net MVC中使用angularJs刷新页面数据列表
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • .net经典笔试题
  • .php文件都打不开,打不开php文件怎么办