图像分割经典算法--《最小割最大流》(Minimum Cut——Max Flow)

1.算法介绍

最小割算法(Minimum Cut)是图像分割的经典算法之一,同时也在"Graph Cut"、"Grab Cut"等算法中都有被使用过。最小割最大流算法是指在一个有向的图中,能够从源点(source)到达汇点(terminal)的最大流量等于如果从图中剪除就能够导致网络流中断的边的集合的最小容量和。即在任何网络中,最大流的值等于最小割的容量。
提出该分割算法的论文:
Interactive Graph Cuts for Optimal Boundary & Region Segmentation of Objects in N-D Images
在这里插入图片描述

2.最小割

图论中的最小割
在图论中,图的最小切割是其在某种意义上是最小的切割(图形的顶点划分为由至少一个边连接的两个不相交的子集)。图的最小割可以分很多情况进行讨论,例如有向图、无向图,边的权重等。下图是一张无向无权重图和它的两个割,红色的线格割掉了三条边,而绿色的线割掉了两条边,很明显绿色的线为该图的最小割。
在这里插入图片描述
关于最小割
如下图1所示,是一个有向带权图,共有4个顶点和5条边。每条边上的箭头代表了边的方向,每条边上的数字代表了边的权重。
图1
公式: G = < V , E > G = < V, E > G=<V,E>是图论中对图的表示方式,其中V表示顶点(vertex)所构成的集合,E表示边(edge)所构成的集合。顶点V的集合和边的集合E构成了图G(graph)。
以图1为例,图1中顶点s表示源点(source),顶点t表示终点(terminal),从源点s到终点t共有3条路径:

s -> a -> t
s -> b -> t
s -> a -> b-> t
现在要求剪短图中的某几条边,使得不存在从s到t的路径,并且保证所减的边的权重和最小。相信大家能很快想到解答:剪掉边”s -> a”和边”b -> t”。
图2
如上图2所示,图中已经不存在从源点到终点的路径,所割掉的边的权重值之和为5,是所有的切割方式中权重值最小的,像这样的切割方法我们将其称之为最小割。

3.最大流

如图所示,假如顶点s源源不断有水流出,边的权重代表该边允许通过的最大水流量,顶点t流入的水流量最大是多少?
max-flow

我们可以从顶点s到顶点t的3条路径着手分析,从源点s到终点t共有3条路径:
s -> a -> t:流量被边”s -> a”限制,最大流量为2
s -> b -> t:流量被边”b -> t”限制,最大流量为3
s -> a -> b-> t:边”s -> a”的流量已经被其他路径占满,没有流量
所以,顶点t能够流入的最大水流量为:2 + 3 = 5。
这就是最大流问题。所以,图1的最大流为:2 + 3 = 5。
可以发现图1的最小割和最大流都为5,经过数学证明可以知道,图的最小割问题可以转换为最大流问题。所以,算法上在处理最小割问题时,往往先转换为最大流问题。

最大流和最小割的关系是什么?
1.最大流不可能大于最小割,因为最大流所有的水流都一定经过最小割那些割边,流过的水流怎么可能比水管容量还大呢?
2.最大流不可能小于最小割,如果小,那么说明水管容量没有物尽其用,可以继续加大水流。
由此可见,最大流和最小割的其实都是在求解同一个问题

最大流的求解方式
最小割最大流的一种详细的解释
下面介绍最大流的求解过程:
Step 1:1->2->3->4(s->t的路径)
step1
Step 2:1->2->3(s->t的路径)
step2
Step 3: 1->3->2->4(s->t的路径,其中2-3的方向在之前已经反向)
step3
Step 4: 1->3->4(s->t的路径)
step4

4.参考内容

1.图像分割之最小割与最大流算法:
https://imlogm.github.io/%E5%9B%BE%E5%83%8F%E5%A4%84%E7%90%86/mincut-maxflow/
2.最大流-最小割问题:
https://wenku.baidu.com/view/54323c030722192e4536f64f.html?re=view

  • 50
    点赞
  • 204
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: 可以使用支持HTTP服务器的软件来在本地服务器上打开HTML文件,例如Apache、Nginx等。另外,也可以使用Node.js的模块,例如http-server来搭建一个简易的HTTP服务器,然后打开本地的HTML文件。 ### 回答2: 要在本地服务器上打开html文件,而不是在文件夹内直接打开,可以按照以下步骤操作: 1. 安装一个本地服务器软件,比如XAMPP、WampServer、MAMP等。这些软件都提供了Apache服务器以及相应的PHP和MySQL支持。 2. 将你的html文件复制到服务器软件的相关文件夹中。不同的本地服务器软件可能有不同的文件夹位置。通常,在安装目录中有一个名为"htdocs"或"www"的文件夹,你可以将你的html文件放在这个文件夹中。 3. 启动本地服务器软件。打开软件,启动Apache服务器。 4. 在浏览器中输入"localhost"或"127.0.0.1"来访问本地服务器。 5. 在浏览器地址栏输入"http://localhost/你的html文件名.html",然后按下回车键。 6. 就会在浏览器中打开你的html文件,并在本地服务器上运行。 通过上述步骤,你可以在本地服务器上打开html文件,并且可以通过浏览器访问这个文件。这样做的好处是,服务器可以提供更多的功能,比如PHP和数据库支持,同时也更加符合网站开发的需求。 ### 回答3: 要在本地服务器上打开HTML文件,而不是直接在文件夹中打开,你需要按照以下步骤进行操作: 1. 首先,确保你已经安装了一个本地服务器环境,比如使用Apache或Nginx等服务器软件。 2. 将你的HTML文件放置在服务器的根目录下,通常在服务器软件的安装目录中可以找到一个叫做"htdocs"或"www"的文件夹。将HTML文件放在此文件夹内。 3. 启动本地服务器。打开你的服务器软件,启动服务器服务。 4. 在浏览器中输入本地服务器的地址。通常默认情况下,你可以在浏览器的地址栏中输入"http://localhost"来访问本地服务器。 5. 输入HTML文件的路径。根据你的文件结构,输入HTML文件的路径来访问它。例如,如果你的HTML文件名为index.html,它位于服务器根目录下,则在浏览器中输入"http://localhost/index.html"即可打开该文件。 通过按照上述步骤,你将能够在本地服务器上打开HTML文件,这样可以运行其中的脚本和样式,并查看在服务器环境中的效果。这对于开发和测试网页或网站非常有用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值