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区域描述
区域面积
区域重心
区域周长
纹理
纹理:
反映像素灰度的空间分布属性的图像特征,通常表现为局部不规则但宏观有规律性
常用的纹理描述方法:
- 统计法:基于图像的灰度直方图的特性
- 频谱法:
统计法
频谱法
相关文章:

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

图论问题建模和floodfill算法
目录 引入:leetcode695.岛屿的最大面积 分析与转换 一维二维转换 四联通 完整代码解答: 1)显示的创建图解决问题的代码 2)不显示的创建图解决此问题的代码 floodfill算法 定义 引入:leetcode695.岛屿的最大面…...

MySQL - 库的操作
目录 1.库的操作1.1创建数据库1.2创建数据库案例 2.字符集和校验规则3.操纵数据库4.备份和恢复5.查看连接情况 1.库的操作 1.1创建数据库 语法: CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] ...] create_specifica…...
多次kerberos认证服务超时
调整 /var/kerberos/krb5kdc/kdc.conf 文件,有则修改,无则添加 [kdcdefaults] kdc_tcp_listen_backlog 7调整 /etc/krb5.conf [dbmodules] disable_last_success true调整 /etc/sysconfig/krb5kdc KRB5KDC_ARGS‘-w 48’ #增大kdc的进程数量生效上述配…...
Vuex源码-各原理简单总结
1,简单总结 Vuex就是一个构造函数,他拥有install方法和Store类这两个属性。在vue初始化调用new Vue的时候,将store作为参数传入,然后调用Vue.use()实际是调用install方法将store这个实例挂载到全局,从而可以保证全局只…...
vcpkg 使用 cmake 编译C/C++工程代码时指定使用静态库链接编译
参考文献: CMake 项目中的 vcpkg | Microsoft Learn c - Using static Boost libraries with vcpkg and CMake - Stack Overflow Vcpkg updates: Static linking is now available - C Team Blog (microsoft.com) microsoft/vcpkg: C Library Manager for Windo…...
FlinkCDC系列:数据同步对部分字段的处理,只更新部分字段
在flinkCDC源数据配置中,只对表中的部分字段关注,通过监控部分字段进行数据更新或者不更新,对数据进行同步。主要通过以下两个参数: column.exclude.list 默认: 空字符串 一个可选的、以逗号分隔的正则表达式列表,与…...
Linux 包操作 (rpm)
目录 1. rpm 包1.1. 提取和安装 rpm 包1.2. 查看一个 rpm 包中的文件安装到那里去 1. rpm 包 rpm --version1.1. 提取和安装 rpm 包 使用以下命令来解压 rpm 包: rpm2cpio package.rpm | cpio -idmv其中, package.rpm 是你要解压的 rpm 包的文件名。这个命令将会将 rpm 包解…...
Docker中OceanBase挂载过后,删除再启动无限重启的解决办法
ob-compose.yml文件如下: version: 3 services:oceanbase1:image: oceanbase/oceanbase-ce:latestcontainer_name: oceanbase1hostname: oceanbase1ports:- 2881:2881restart: alwaysprivileged: truevolumes:#- //d/obdata/ob:/root/ob#- //d/obdata/obd:/root/.o…...
react中的forwardRef 和memo的区别?
文章目录 前言介绍forwardRefmemo适用场景优点缺点后言 前言 hello world欢迎来到前端的新世界 😜当前文章系列专栏:前端面试 🐱👓博主在前端领域还有很多知识和技术需要掌握,正在不断努力填补技术短板。(如果出现错…...

偶数矩阵判断【C语言作业】
题目 若一个布尔矩阵所有行和所有列的和都是偶数,则称为偶数矩阵。请编写一个程序,判断一个布尔矩阵是否是偶数矩阵。 要求: (1)输入:首先输入一个正整数n(n<100),代表该矩阵的大小,接下来是n行n列的矩…...

stable-diffusion 电商领域prompt测评集合
和GhostReivew一个思路,还是从比较好的图片或者是civitai上找一些热门的prompt,从小红书上也找到了不少的prompt,lexica.art上也有不少,主要是为了电商场景的一些测评: 小红书、civitai、Lexica、Liblib.ai、 depth o…...

协方差矩阵
将变量两两之间的协方差排成矩阵的形式,就是协方差矩阵。 用个例子来说明下,帮助理解。 下面这组数据有三个变量:身高x、体重y、年龄z,每个变量都有5个取值: 身高x(cm)体重y(kg&a…...

0基础学习VR全景平台篇第117篇:利用插件地拍补地 - PS教程
上课!全体起立~ 大家好,欢迎观看蛙色官方系列全景摄影课程! 嗨,大家好,今天我们来介绍【PS利用插件地拍补地】。 之前已经教给大家补地插件的安装方法,今天我们教给大家如何使用这个插件进行补地。 首…...
git的命令操作
1、基本命令 目录 1、基本命令 创建 Git 存储库 添加文件/目录到索引 将更改提交到本地存储库 撤消上一次提交的更改 显示工作树状态 显示对工作树和索引的更改 显示提交日志 显示提交详细信息 重命名文件 从工作树和索引中移除文件 从工作树中移除未跟踪文件 将…...

Nginx+keepalived实现七层的负载均衡
1.keepalived VRRP 介绍 keepalived是什么? keepalived是集群管理中保证集群高可用的一个服务软件,用来防止单点故障。 keepalived工作原理 keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol&…...
至少在两个数组中出现的值
给你三个整数数组 nums1、nums2 和 nums3 ,请你构造并返回一个 元素各不相同的 数组,且由 至少 在 两个 数组中出现的所有值组成。数组中的元素可以按 任意 顺序排列。 示例 1: 输入:nums1 [1,1,3,2], nums2 [2,3], nums3 [3]…...
子女关于骨灰发生争议,骨灰该如何安置?
亲属去世后,争房产、争车辆、争存款的事情不少,但争骨灰却是稀罕事儿。近日,江苏省无锡市梁溪区人民法院审结了一起人格权案件,马某与继母因父亲老马骨灰安葬引发的纷争,历经2年多终于落幕。 老马与前妻离婚后&…...
android隐藏输入法的一些尝试,最后一个可行
一、背景: 基于android开发自己的输入法app,用户需要手动收起输入法 二、准备工作: 定义类 public class CustIMS extends InputMethodService {} 和 xml声明三、尝试验证: 1、CustIMS.hideWindow(); 结论:这个在…...
【go-zero】go-zero 脚手架 simple-admin 第一章:通过goctls生成rpc整个项目 | go-zero整合 ENT数据库orm框架
往期回顾 【simple-admin 开篇:安装 了解 goctls】https://ctraplatform.blog.csdn.net/article/details/133988572 本章内容 往期回顾一、simple-admin 创建rpc项目实战1、创建git仓库1.1、创建任意git仓库1.2、克隆到本地2、创建RPC项目2.1、goctls 安装 rpc项目2.2、复制项…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
Mobile ALOHA全身模仿学习
一、题目 Mobile ALOHA:通过低成本全身远程操作学习双手移动操作 传统模仿学习(Imitation Learning)缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...

九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...
Caliper 配置文件解析:fisco-bcos.json
config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...
第7篇:中间件全链路监控与 SQL 性能分析实践
7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...