(图像分割)基于图论的归一化分割

news2024/11/18 23:29:26

解释:将图像映射成图,以图为研究对象,利用图的理论知识获得图像的分割。

下面介绍:图的基本理论,基于图论的归一化分割算法

一、图的基本理论

图G=(V,E,\phi),分别是:节点、边、顶点和边的对应关系。简单记为G=(V,E)。

图的几个基本概念

1.顶点的度【无向图、有向图(入度、出度)
2.连通图【无向图(有路径)、有向图(任意两点之间连通)
3.子图和割【补图(V1∪V2=V,则图G1和G2互为补图)、割集(如果将图G分为两个互不相交的子图,我们称连接两个子图的边的集合为割集)

割集S是一个边集:如果在图G中去掉边集S中所有的边,则图G就变成一个二分支的分离图。
割集的边的权重之和叫做割:

 图像与图的映射关系

图像的像素《——》图的顶点V
图像的相邻像素《——》图的边E
相邻像素间的相似度《——》图的权值W

图像构造图的过程

步骤:(1)节点的选取与边的连接
节点的选取分为:一对一(每个像素对应图的一个节点)、多对一(多像素对应一节点,超像素)
边的连接方式(像素间的邻接关系):4邻接、8邻接(常用这个作为标准的像素邻接关系)、不太常用的全连接(任何像素都与图像中的其他所有像素连边,增加算法复杂性了)、固定区域内的全连接(以某个像素为中心,限定某个固定半径区域内的像素全部连边)

(2)权重的选择 

边上的权重反应像素间的相似性或差异性。度量两个节点间颜色、亮度、距离、纹理等方面
常见的计算函数:

第一种:

 第二种:

 (3)区域邻接图(RAG)

 选多个像素组成的区域映射为一个节点,两邻域区域建立连接边。

 基于图论的分割算法

他们主要是围绕着分割准则进行分割。
介绍几个代表性的分割准则:
(1)基于特征向量的分割准则——类似于权重的矩阵对角化。构造目标函数并当其取最大值时,各元素之间具有很大相似度,属于该类的可能性大,从而达到分类目的。
(2)基于区域合并的分割准则——设计了一种预测两个区域块之间是否能产生边界的法则,这个法则产生的分割可以达到全局最优
(3)基于归一化分割的准则Ncuts——将整幅图分成两部分,然后每一步都把其中一个部分继续再分成两部分,直到达到某种条件再停止分割。

二、归一化分割算法

算法基本原理

定义一个将图分成两部分的目标函数:

 Wu和Leahy提出的基于最小割准则的聚类方法:求上面目标函数cut(A,B)的最小值,就得到了图的最优分割。递归调用这个最小割准则可以将一幅图一直二分下去,最终得到满意的结果。但是最小割准则会把一些孤立的点分割为独立的一类,这样最小割准则会失去意义的。

 为了弥补这个最小割的“偏见”,Shi和Malik提出归一化分割方法。它定义了一个新的准则来衡量A,B间的相似度。

 

 归一化分割的求解

(数学公式推导)

 

 归一化分割结果

归一化分割实现方式

(1)递归调用二分归一化分割 
缺点:只利用了第二小特征值对应的特征向量,舍弃了其他的特征向量。其他特征向量也包含了有用的分割信息。


(2)多分归一化分割
改进的地方:取前n个特征向量作为每个像素的n维指标向量。
步骤:先用K-means聚类算法将图像过分割成k类,然后使用下面两种方法处理:

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《管理世界》数据复现:国有资本参股如何影响民营企业?——基于债务融资视角的研究

摘要: 本文以债务融资为切入点,从“未阐明的规则”和“阐明的规则”两个层面探讨了国有资本参股的“反向混改”是否以及如何影响民营企业。研究发现:国有资本参股可以显著降低民营企业的债务融资成本,扩大债务融资规模。…

性能测试——LoadRunner: Controller的使用

Controller Controller是用来创建测试环境,执行在VUG中编写的测试脚本 可以直接点击Controller的快捷方式打开,也可以在VUG中打开 这里将虚拟用户数设置为3,比较适合自己的电脑性能 整个controller分为下面几个模块 这里先设置左下角的目标计划 设置初始化:双击…

PHP 8.1.14升级低版本openssl扩展的操作方法

问题背景: PHP8.1.4内嵌openssl源码编译出来的openssl库版本号是1.0.2.x系列,低版本的openssl扩展存在安全漏洞,需要将该扩展升级openssl 社区最新版本3.0.8 操作步骤: 安装最新版本的openssl wget https://github.com/openssl…

Java面试总结(四)

synchroize的实例、静态、代码块的锁对象 修饰实例方法 修饰静态方法 修饰代码块 1、修饰实例方法 (锁当前对象实例) 给当前对象实例加锁,进入同步代码前要获得 当前对象实例的锁 。 synchronized void method() {//业务代码 }2、修饰静…

在vue中如果computed属性是一个异步操作怎么办?

在计算属性中使用异步方法时,可以使用async/await来处理异步操作。由于计算属性是基于它们的依赖缓存的,所以我们需要使用一个返回Promise的异步方法来确保计算属性能够正常运行。 下面是一个简单的示例,演示如何在计算属性中使用异步方法&am…

P6入门:P6 Professional常用快捷键/热键

目录 一 引言 Primavera P6 专业版 Primavera P6 EPPM(网络客户端) Primavera P6 Alt 键 Primavera P6 功能键 一 引言 在 Oracle Primavera P6 中,有热键命令可以节省宝贵的时间。尤其是作为一个与 Primavera P6 长打交道人熟练掌握这…

苹果手机备份的文件在电脑什么地方 苹果备份文件怎么查看

在这个网络信息时代,为手机进行定期备份已经成为了家常便饭。在使用备份软件对苹果手机进行备份后,苹果手机备份的文件在什么地方,苹果备份文件怎么查看呢?本文就带大家来了解一下。 一、苹果手机备份的文件在电脑什么地方 大家…

数据库三大范式、BC范式、第四范式

目录第一范式(1NF):原子性(存储的数据应该具有“不可再分性”)第二范式(2NF):唯一性 (消除非主键部分依赖联合主键中的部分字段)(一定要在第一范式已经满足的情况下&…

Python之flask基础

文章目录入门小案例及认识路由小总结配置文件路由系统路由支持正则cbv (用的比较少)模板渲染变量及循环请求响应pipreqs(找当前项目依赖的包)闪现(flash)请求扩展(类似中间件)猴子补…

【Redis】Redis集群之哨兵机制

【Redis】Redis集群之哨兵机制 文章目录【Redis】Redis集群之哨兵机制1. 哨兵的作用和原理1.1 哨兵的作用1.2 redis服务状态监控1.3 选举新master1.4 故障转移1.5 总结2. 搭建哨兵集群2.1 准备实例和配置2.2 启动2.3 测试3. RedisTemplate的哨兵模式1. 哨兵的作用和原理 1.1 哨…

1634_linux中把pdf拆分成独立的图片文件

全部学习汇总: GreyZhang/toolbox: 常用的工具使用查询,非教程,仅作为自我参考! (github.com) 最近工作学习之中使用pdf的频次非常高,这种格式的通用性的确是不错。在目前的很多平台上都有很好用的软件。不过&#xff…

ios设备管理软件 2.16.9官网Mac/Windows下载电脑版功能介绍

imazing 2.16.9官网Mac/Windows下载电脑版是款针对苹果设备所打造的管理工具。iMazing为用户提供多种设备管理功能,每一位用户都能以自己的形式管理苹果设备。iMazing与苹果设备连接后,用户就可以轻松传输文件,浏览保存信息等。 应用介绍 i…

Zookeeper3.5.7版本——集群启动停止脚本

目录一、Zookeeper3.5.7集群部署(linux环境-centos7)二、3台服务器信息三、Zookeeper3.5.7集群启动停止脚本3.1、编写zk.sh脚本3.2、增加脚本执行权限3.3、执行Zookeeper 集群的zk.sh脚本四、执行脚本启动Zookeeper 集群五、执行脚本查看Zookeeper 集群状…

Lesson11---分类问题

11.1 逻辑回归 11.1.1 广义线性回归 课程回顾 线性回归:将自变量和因变量之间的关系,用线性模型来表示;根据已知的样本数据,对未来的、或者未知的数据进行估计 11.1.2 逻辑回归 11.1.2.1 分类问题 分类问题:垃圾…

SS-ELM-AE与S2-BLS相关论文阅读记录

Broad learning system for semi-supervised learning 摘要:本文认为,原始BLS采用的稀疏自编码器来生成特征节点是一种无监督学习方法,这意味着忽略了标注数据的一些信息,并且难以保证同类样本之间的相似性和相邻性,同…

CentOS 7.9汇编语言版Hello World

先下载、编译nasm汇编器。NASM汇编器官网如下图所示: 可以点图中的List进入历史版本下载网址: 我这里下载的是nasm-2.15.05.tar.bz2 在CentOS 7中,使用 wget http://www.nasm.us/pub/nasm/releasebuilds/2.15.05/nasm-2.15.05.tar.bz2下载…

用Python Flask为女朋友做一个简单的网站(附可运行的源码)

🌟所属专栏:献给榕榕🐔作者简介:rchjr——五带信管菜只因一枚😮前言:该专栏系为女友准备的,里面会不定时发一些讨好她的技术作品,感兴趣的小伙伴可以关注一下~👉文章简介…

微信小程序原生开发功能合集四:复选框组件的封装

本章实现小程序复选框组件的封装,使用check及check-group组件实现复选框,封装数据加载过程,并自动实现数据解析及生成,实现相应方法。   另外还提供小程序开发基础知识讲解课程,包括小程序开发基础知识、组件封装、常用接口组件使用及常用功能实现等内容,具体如下:  …

k-Medoids 聚类系列算法:PAM, CLARA, CLARANS

前言 如果你对这篇文章可感兴趣,可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接。 kkk-Means 作为一种经典聚类算法,相信大家都比较熟悉,其将簇中所有的点的均值作为簇中心&#xf…

JavaScript- Map、Set、WeakMap、WeakSet、简单模拟Map

文章目录Map常见方法set常见方法WeakMapWeakSet如何实现一个Map?(简单模仿)Map Map是一种键值对的结构 常见方法 Map.prototype.set()Map.prototype.has()Map.prototype.get()Map.prototype.delete() set 常见方法 Set类似于数组,但是里面成员的值都是唯一的…