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

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


 

相关文章:

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

一、图像分割的基本概念 1.1专有名词 前景和背景 在图像分割中,我们通常需要将图像分为前景和背景两个部分。前景是指图像中我们感兴趣、要分割出来的部分,背景是指和前景不相关的部分。例如,对于一张人物照片,人物就是前景&…...

UEditorPlus v3.6.0 图标补全,精简代码,快捷操作重构,问题修复

UEditor是由百度开发的所见即所得的开源富文本编辑器,基于MIT开源协议,该富文本编辑器帮助不少网站开发者解决富文本编辑器的难点。 UEditorPlus 是有 ModStart 团队基于 UEditor 二次开发的富文本编辑器,主要做了样式的定制,更符…...

C++ Set

定义 set不同于vector,strin,list这种存储容器&#xff0c;set是一种关联式容器&#xff0c;底层是搜二叉&#xff1b; 功能 set可以确定唯一的值&#xff0c;可以排序去重。 接口 insert() #include <iostream> #include<set> using namespace std;int main…...

基于知识库的chatbot或者FAQ

背景 最近突然想做一个基于自己的知识库&#xff08;knowlegebase&#xff09;的chatbot或者FAQ的项目。未来如果可以在公司用chatgpt或者gpt3.5之后的模型的话&#xff0c;还可以利用gpt强大的语言理解力和搜索出来的用户问题的相关业务文档来回答用户在业务中的问题。 Chat…...

ZOC8 for Mac:超越期待的终端仿真器

在Mac上&#xff0c;一个优秀的终端仿真器是每位开发者和系统管理员的必备工具。ZOC8&#xff0c;作为一款广受好评的终端仿真器&#xff0c;以其强大的功能和易用性&#xff0c;已经在Mac用户中积累了良好的口碑。本文将为您详细介绍ZOC8的各项特性&#xff0c;以及为什么它会…...

织梦dedecms后台档案列表显示空白或显示不了文章的解决方法

织梦dedecms后台档案列表显示空白或显示不了文章的解决方法 dede/content_list.php空白解决方法如下 dede/content_list.php空白 在DEDE后台可以查看栏目文章&#xff0c;但是所有档案列表却为空白或者显示不了文章,如图所示&#xff1a; 后来找到dede/content_list.php,看了下…...

10本值得阅读的量化交易书籍

什么是量化交易&#xff1f; 量化交易是利用数学模型或算法来创建交易策略并进行交易。量化交易通常由大型机构交易员或对冲基金雇用&#xff0c;他们雇用大量的博士和工程师团队。从历史上看&#xff0c;量化交易领域一直非常隐秘&#xff0c;有效的想法往往受到公司的严密保…...

c++通过对象的地址初始化指针,需要对指针进行释放么(企业链表衍生)

在C中&#xff0c;如果你通过对象的地址来初始化指针&#xff0c;通常情况下是不需要手动释放指针的。这是因为对象的生存期与指针所指向的对象的生存期相关联。当对象超出其作用域或被销毁时&#xff0c;指向该对象的指针也会自动成为悬挂指针&#xff0c;这种情况下再访问该指…...

CentOS安装MySQL

参考官方链接&#xff1a;https://dev.mysql.com/doc/refman/8.0/en/linux-installation-rpm.html CentOS版本 [rootlocalhost ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) 下载MySQL安装包&#xff08;版本&#xff1a;8.0.35&#xff09; 访问地址…...

AI:45-基于深度学习的声纹识别

🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌本专栏包含以下学习方向: 机器学习、深度学…...

Spring-cloud-openfeign拦截器RequestInterceptor接口

RequestInterceptor接口位于包io.github.openfeign-core下&#xff0c;使用Spring Cloud Feign的时候会自动依赖这个包 下面的代码会在每次调用Feign1的m1方法时&#xff0c;向HTTP头追加键值对武汉3:晴川历历汉阳树 FeignClient(value "feignA", url "XXX或…...

自动化测试开发 —— 如何封装自动化测试框架?

封装自动化测试框架&#xff0c;测试人员不用关注框架的底层实现&#xff0c;根据指定的规则进行测试用例的创建、执行即可&#xff0c;这样就降低了自动化测试门槛&#xff0c;能解放出更多的人力去做更深入的测试工作。本篇文章就来介绍下&#xff0c;如何封装自动化测试框架…...

Leetcode—2.两数相加【中等】

2023每日刷题&#xff08;十五&#xff09; Leetcode—2.两数相加 迭代法实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l…...

拷贝音频、视频、word等二进制文件的实现方法,不掉帧

拷贝音频、视频、word等二进制文件的实现方法&#xff1a; 演示使用BufferedOutputStream 和 BufferedInputStream 使用 使用他们&#xff0c;可以完成二进制文件 思考&#xff1a;字节流可以操作二进制文件&#xff0c;可以操作文本文件吗&#xff1f;True public class B…...

dmfldr-快速装载-载入(DM8:达梦数据库)

dmfldr-快速装载-DM8:达梦数据库 介绍1 准备数据文件2 根据数据文件在数据库创建表3 根据数据文件,配置快速装载的控制文件4 在数据库bin执行目录执行命令5 日志6 达梦数据库学习使用列表 介绍 DM 提供了快速装载工具&#xff1a;dmfldr&#xff1b;通过使用快速装载工具能够把…...

Postman测试金蝶云星空Webapi【协同开发云】

文章目录 Postman测试金蝶云星空Webapi【协同开发云】环境说明业务背景大致流程具体操作请求登录接口请求标准接口查看保存提交审核反审核撤销 请求自定义接口参数是字符串参数是实体类单个实体类实体类是集合 其他 Postman测试金蝶云星空Webapi【协同开发云】 环境说明 金蝶…...

mongo常用操作符及查询例子

比较操作符&#xff1a; $eq&#xff1a;匹配字段值等于指定值。 $ne&#xff1a;匹配字段值不等于指定值。 $gt&#xff1a;匹配字段值大于指定值。 $gte&#xff1a;匹配字段值大于或等于指定值。 $lt&#xff1a;匹配字段值小于指定值。 $lte&#xff1a;匹配字段值小于或等…...

41.排序练习题(王道2023数据结构第8章综合练习)

试题1&#xff08;王道8.3.3节综合练习2&#xff09;&#xff1a; 编写双向冒泡排序算法&#xff0c;在正反两个方向交替扫描。即第一趟把关键字最大的元素放在序列的最后面&#xff0c;第二趟把关键字最小的元素放在序列最前面&#xff0c;如此反复。 首先实现冒泡排序&…...

python爬虫,如何在代理的IP被封后立刻换下一个IP继续任务?

前言 在实际的爬虫应用中&#xff0c;爬虫程序经常会通过代理服务器来进行网络访问&#xff0c;以避免访问过于频繁而受到网站服务器的限制。但是&#xff0c;代理服务器的IP地址也可能被目标网站限制&#xff0c;导致无法正常访问。这时候&#xff0c;我们需要在代理IP被封后…...

小程序开发——小程序项目的配置与生命周期

1.app.json配置属性 app.json配置属性 2.页面配置 app的页面配置指的是pages属性&#xff0c; pages数组的第一个页面将默认作为小程序的启动页。利用开发工具新建页面时&#xff0c;则pages属性对应的数组将自动添加该页面的路径&#xff0c;若是在硬盘中添加文件的形式则不…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成&#xff1a;MAC头部frame bodyFCS&#xff0c;其中MAC是固定格式的&#xff0c;frame body是可变长度。 MAC头部有frame control&#xff0c;duration&#xff0c;address1&#xff0c;address2&#xff0c;addre…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例&#xff1a;使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例&#xff1a;使用OpenAI GPT-3进…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡&#xff08;如 HAProxy、AWS NLB、阿里 SLB&#xff09;发起上游连接时&#xff0c;将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后&#xff0c;ngx_stream_realip_module 从中提取原始信息…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile&#xff0c;新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

稳定币的深度剖析与展望

一、引言 在当今数字化浪潮席卷全球的时代&#xff0c;加密货币作为一种新兴的金融现象&#xff0c;正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而&#xff0c;加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下&#xff0c;稳定…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展&#xff0c;越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式&#xff0c;也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建&#xff0c;…...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践

作者&#xff1a;吴岐诗&#xff0c;杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言&#xff1a;融合数据湖与数仓的创新之路 在数字金融时代&#xff0c;数据已成为金融机构的核心竞争力。杭银消费金…...

淘宝扭蛋机小程序系统开发:打造互动性强的购物平台

淘宝扭蛋机小程序系统的开发&#xff0c;旨在打造一个互动性强的购物平台&#xff0c;让用户在购物的同时&#xff0c;能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机&#xff0c;实现旋转、抽拉等动作&#xff0c;增…...

Python 训练营打卡 Day 47

注意力热力图可视化 在day 46代码的基础上&#xff0c;对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...

【堆垛策略】设计方法

堆垛策略的设计是积木堆叠系统的核心&#xff0c;直接影响堆叠的稳定性、效率和容错能力。以下是分层次的堆垛策略设计方法&#xff0c;涵盖基础规则、优化算法和容错机制&#xff1a; 1. 基础堆垛规则 (1) 物理稳定性优先 重心原则&#xff1a; 大尺寸/重量积木在下&#xf…...