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

一、图像分割的基本概念

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误差法


 

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

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

相关文章

LIMZO-A-6/210开环控制比例插装阀控制器

LICZO-A-4/100、LIMZO-A-6/210、LIRZO-A-3/350、LIMZO-A-8/315、LICZO-A-3/100、LIRZO-A-6/210、LICZO-A-2/210二通数字式比例插装阀可分别执行: 压力补偿溢流和减压开环功能。此类阀有不同的型式可供选择:A型,与分体式放大器配合使用AEB型,带基本型集成…

Mybatis—XML配置文件、动态SQL

学习完Mybatis的基本操作之后&#xff0c;继续学习Mybatis—XML配置文件、动态SQL。 目录 Mybatis的XML配置文件XML配置文件规范XML配置文件实现MybatisX的使用 Mybatis动态SQL动态SQL-if条件查询 \<if\>与\<where\>更新员工 \<set\>小结 动态SQL-\<forea…

linux的使用学习(1)

Linux 修改root密码 1.以 root 用户或具有 sudo 权限的登录到 Linux 系统。 2.打终端&#xff0c;并执行以下命令以更改 root 用户的密码&#xff1a; sudo passwd root 3.然后&#xff0c;系统会要求你输入新的 root 密码。请注意&#xff0c;在输入密码时&#xff0c;终端界…

深入了解 Elasticsearch 8.1 中的 Script 使用

一、什么是 Elasticsearch Script&#xff1f; Elasticsearch 中的 Script 是一种灵活的方式&#xff0c;允许用户在查询、聚合和更新文档时执行自定义的脚本。这些脚本可以用来动态计算字段值、修改查询行为、执行复杂的条件逻辑等等。 二、支持的脚本语言有哪些 支持多种脚本…

JavaWeb——关于servlet种mapping地址映射的一些问题

6、Servlet 6.4、Mapping问题 一个Servlet可以指定一个映射路径 <servlet-mapping><servlet-name>hello</servlet-name><url-pattern>/hello</url-pattern> </servlet-mapping>一个Servlet可以指定多个映射路径 <servlet-mapping>&…

音视频技术开发周刊 | 317

每周一期&#xff0c;纵览音视频技术领域的干货。 新闻投稿&#xff1a;contributelivevideostack.com。 MIT惊人再证大语言模型是世界模型&#xff01;LLM能分清真理和谎言&#xff0c;还能被人类洗脑 MIT等学者的「世界模型」第二弹来了&#xff01;这次&#xff0c;他们证明…

中文编程工具免费版下载,中文开发语言工具免费版下载

中文编程工具免费版下载&#xff0c;中文开发语言工具免费版下载 中文编程工具开发的实际部分案例如下图 编程系统化课程总目录及明细&#xff0c;点击进入了解详情。 https://blog.csdn.net/qq_29129627/article/details/134073098?spm1001.2014.3001.5502

异步 AIMD 收敛

给出的一直都是同步 AIMD 收敛&#xff0c;所以简单&#xff0c;但不至于 bbr 单流情形退化成简陋。 给出一个异步 AIMD 收敛过程是必要的&#xff0c;可见&#xff0c;它同样是简洁优美的&#xff1a; 虽然我没有标注太多&#xff0c;它始终没有成为一团乱麻。 和同步 AIM…

softmax的高效CUDA编程和oneflow实现初步解析

本文参考了添加链接描述,其中oneflow实现softmax的CUDA编程源代码参考链接添加链接描述 关于softmax的解读以及CUDA代码实现可以参考本人之前编写的几篇文章添加链接描述,添加链接描述,添加链接描述 下面这个图片是之前本人实现的softmax.cu经过接入python接口,最终和pytor…

06、SpringCloud -- 订单详情界面实现

目录 订单详情界面实现需求&#xff1a;代码前端后端controllerservicemapperdomain 效果&#xff1a; 订单详情界面实现 需求&#xff1a; 现在的订单详情界面是这样的。需要获取订单的数据对这个详情页面进行渲染 代码 前端 后端 controller service mapper domain 日…

低功耗设计-ir drop的signoff corner怎么选择?

我正在「拾陆楼」和朋友们讨论有趣的话题&#xff0c;你⼀起来吧&#xff1f; 拾陆楼知识星球入口 相关文章链接: Multi Voltage Flow笔记 有几个方向&#xff0c;看公司需求吧 1.功耗最差的&#xff1b; 2.tt的&#xff08;tt85 是比较接近芯片真实工作情况的&#xff09…

Hbase

目录 1 概述 1.1 HBase 数据模型 1.1.1 HBase 逻辑结构 1.1.2 HBase 物理存储结构 1.1.3 数据模型 1.2 HBase 基本架构 2 HBase 快速入门 2.1 HBase 安装部署 hadoop3.X和Hbase2.X不兼容问题&#xff1a; 2.2 基本操作 3 HBase API 3.1 环境准备 3.2 创建连接 3.2.1 单线程创建…

【数据结构】数组和字符串(七):特殊矩阵的压缩存储:三元组表的转置、加法、乘法操作

文章目录 4.2.1 矩阵的数组表示4.2.2 特殊矩阵的压缩存储a. 对角矩阵的压缩存储b~c. 三角、对称矩阵的压缩存储d. 稀疏矩阵的压缩存储——三元组表4.2.3三元组表的转置、加法、乘法、操作转置加法乘法算法测试实验结果代码整合 4.2.1 矩阵的数组表示 【数据结构】数组和字符串…

github搜索技巧探索

毕设涉及到推荐系统&#xff0c;那么就用搜索推荐系统相关资料来探索一下GitHub的搜搜技巧 文章目录 1. 基础搜索2. 限定在特定仓库搜索3. 按照语言搜索4. 按照star数量搜索5. 搜索特定用户/组织的仓库6. 查找特定文件或路径7. 按时间搜索8. 搜索不包含某个词的仓库9. 搜索特定…

Spring MVC的常用注解(接收请求数据篇)

目录 RequestMapping 例子&#xff1a; RequestMapping 支持什么类型的请求 使 RequestMapping 只支持特定的类型 RestController 通过 HTTP 请求传递参数给后端 1.传递单个参数 注意使⽤基本类型来接收参数的情况 2.传递多个参数 3.传递对象 4.RequestParam 后端参数…

【教3妹学编辑-算法题】每棵子树内缺失的最小基因值

3妹&#xff1a;“太阳当空照&#xff0c;花儿对我笑&#xff0c;小鸟说早早早&#xff0c;你为什么背上炸药包” 2哥 :3妹&#xff0c;什么事呀这么开发。 3妹&#xff1a;2哥你看今天的天气多好啊&#xff0c;阳光明媚、万里无云、秋高气爽&#xff0c;适合秋游。 2哥&#x…

超全整理,Jmeter性能测试-脚本error报错排查/分布式压测(详全)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 性能脚本error报错…

【JavaSE专栏57】深度解析Java中的this和super关键字:用途、差异和实际应用

深度解析Java中的this和super关键字&#xff1a;用途、差异和实际应用 摘要引言1. this关键字1.1 什是this关键字&#xff1f; &#x1f914;使用 this 解决成员变量和参数之间的歧义&#xff1a;在构造方法中调用其他构造方法&#xff1a;1.3 引用成员变量和方法 &#x1f3af…

使用内网穿透工具进行支付宝沙箱环境支付的SDK接口远程测试

Java支付宝沙箱环境支付&#xff0c;SDK接口远程调试【内网穿透】 1.测试环境 MavenSpring bootJdk 1.8 2.本地配置 获取支付宝支付Java SDK,maven项目可以选择maven版本,普通java项目可以在GitHub下载,这里以maven为例 SDK下载地址&#xff1a;https://doc.open.alipay.com…

AutoEncoding与AutoRegressive:区别,联系和应用

关于AutoEncoding&#xff08;AE&#xff09;和AutoRegressive&#xff08;AR&#xff09; 前几天看了Ilya在Simons上做的关于Generative Model的演讲&#xff0c;介绍了OpenAI现在做的一些AutoRegressive的工作&#xff0c;昨天又看到LeCun宣称Auto-Regressive LLMs are doom…