图像处理十大经典算法

图像处理与机器视觉2018-12-07 07:22:00

图像处理,是对图像进行分析、加工、和处理,使其满足视觉、心理以及其他要求的技术。图像处理是信号处理在图像域上的一个应用,目前大多数的图像是以数字形式存储,因而图像处理很多情况下指数字图像处理。

随着现代社会的发展,信息的形式和数量正在迅猛增长。其中很大一部分是图像,图像可以把事物生动地呈现在我们面前,让我们更直观地接受信息。下面简单介绍下数字图像处理领域中的经典算法。

一、深度优先搜索

深度优先遍历图的算法是,假定给定图G的初始状态是所有顶点均未被访问过,在G中任选一个顶点i作为遍历的初始点,则深度优先搜索递归调用步骤:

1、访问搜索到的未被访问的邻接点;

2、将此顶点标记为已访问节点;

3、搜索该顶点的未被访问的邻接点,若该邻接点存在,则从此邻接点开始进行同样的访问和搜索,反复进行直到所有节点都被访问为止。

二、广度优先搜索

广度优先搜索算法,又称为'宽度优先搜索',简称BFS。它的思想是:从图中某顶点v出发,在访问了v之后依次访问v的各个未曾访问过的邻接点,然后分别从这些邻接点出发依次访问它们的邻接点,并使得先被访问的顶点的邻接点先于后被访问的顶点的邻接点被访问,直至图中所有已被访问的顶点的邻接点都被访问到。

如果此时图中尚有顶点未被访问,则需要另选一个未曾被访问过的顶点作为新的起始点,重复上述过程,直至图中所有顶点都被访问到为止。也就是说,广度优先搜索遍历图的过程是以v为起点,由近至远,依次访问和v有路径相通且路径长度为1,2...的顶点。

三、A*搜索算法

A*算法(A-Star),作为启发式搜索算法中的一种,是一种在图形平面上,有多个节点的路径,求出最低通过成本的算法,被广泛应用在最优路径求解和一些策略设计的问题中。

A*算法操作:首先将起始结点S放入OPEN表,CLOSE表置空,算法描述:

1、如果OPEN表不为空,从表头取一个结点n,如果为空算法失败。

2、n是目标解吗?是,找到一个解(继续寻找,或终止算法)。

3、将n的所有后继结点展开,就是从n可以直接关联的子结点,如果不在CLOSE表中,就将它们放入OPEN表,并把S放入CLOSE表,同时计算每一个后继结点的估价值f(n),将OPEN表按f(x)排序,最小的放在表头,重复算法,回到1。

四、Dijkstra算法

又叫迪科斯彻算法,是从一个顶点到其余各顶点的最短路径算法,解决的是有向图中最短路径问题。迪杰斯特拉算法主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。

Dijkstra算法采用的是一种贪心的策略,基本算法思想:

1、通过Dijkstra计算图G中的最短路径时,需要指定起点s。

2、引进两个集合S和U。S的作用是记录已求出最短路径的顶点,而U则是记录还未求出最短路径的顶点。

3、初始时,S中只有起点s,U中是除s之外的顶点,并且U中顶点的路径是'起点s到该顶点的路径'。然后,从U中找出路径最短的顶点,并将其加入到S中;更新U中的顶点和顶点对应的路径。 … 重复该操作,直到遍历完所有顶点。

五、Bellman-Ford算法

Bellman - ford算法是求含负权图的单源最短路径的一种算法,其原理为连续进行松弛,在每次松弛时把每条边都更新一下,若在n-1次松弛后还能更新,则说明图中有负环,因此无法得出结果,否则就完成。

Bellman-Ford算法能在更普遍的情况下解决单源点最短路径问题,算法描述:

1、初始化:将除源点外的所有顶点的最短距离估计值。

2、迭代求解:反复对边集E中的每条边进行松弛操作,使得顶点集V中的每个顶点v的最短距离估计值逐步逼近其最短距离。

3、检验负权回路:判断边集E中的每一条边的两个端点是否收敛。如果存在未收敛的顶点,则算法返回false,表明问题无解。否则算法返回true,并且从源点可达的顶点v的最短距离保存在集合dist[v]中。

六、Floyd-Warshall算法

Floyd-Warshall算法是解决任意两点间的最短路径的一种算法,可以正确处理有向图或负权的最短路径问题。

算法思想:

1、创建源顶点 v 到图中所有顶点的距离的集合S,为图中的所有顶点指定一个距离值,初始均为I,源顶点距离为0。

2、计算最短路径,执行 V - 1 次遍历。

3、对于图中的每条边:如果起点u的距离d 加上边的权值w小于终点v的距离d,则更新终点v的距离值d。

4.检测图中是否有负权边形成了环,遍历图中的所有边,计算u至v的距离,如果对于v存在更小的距离,则说明存在环。

七、Prim算法

图论的一种算法,可在加权连通图里搜索最小生成树。由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点,且其所有边的权值之和亦为最小。

Prim算法在找当前最近顶点时使用到了贪婪算法,算法描述:

1、 在一个加权连通图中,顶点集合V,边集合为E。

2、任意选出一个点作为初始顶点,标记为visit,计算所有与之相连接的点的距离,选择距离最短的,标记visit。

3、在剩下的点,计算与已标记visit点距离最小的点,标记visit,证明加入了最小生成树,重复操作,直到所有点都被标记为visit。

八、Kruskal算法

Kruskal算法是一种用来寻找最小生成树的算法,在剩下的所有未选取的边中,找最小边,如果和已选取的边构成回路,则放弃,选取次小边。

Kruskal算法就是基于并查集的贪心算法,算法描述:

1、将图G看做一个森林,每个顶点为一棵独立的树。

2、将所有的边加入集合S,即一开始S = E 。

3、从S中拿出一条最短的边(u,v),如果(u,v)不在同一棵树内,则连接u,v合并这两棵树,同时将(u,v)加入生成树的边集E'。

4、重复3直到所有点属于同一棵树,边集E'就是一棵最小生成树。

九、匈牙利算法

匈牙利算法是用于解决线性任务分配问题的算法之一,该算法的核心就是寻找增广路径,是用来解决二分图最大匹配问题的经典算法,可以在多项式时间内解决问题。

算法轮廓:

1、置M为空

2、找出一条增广路径P,通过异或操作获得更大的匹配M'代替M.

3、重复2操作直到找不出增广路径为止。

十、Ford-Fulkerson算法

也称最大流量算法,常用于作为一个距离向量路由协议例如RIP, BGP, ISO IDRP, NOVELL IPX的算法。

Ford-Fulkerson 算法是一种迭代方法。开始时,对所有 u, v ∈ V 有 f(u, v) = 0,即初始状态时流的值为 0。在每次迭代中,可通过寻找一条增广路径来增加流值。增广路径可以看做是从源点 s 到汇点 t 之间的一条路径,沿该路径可以压入更多的流,从而增加流的值。反复进行这一过程,直至增广路径都被找出为止。

(0)

相关推荐

  • Bellman

    Dijkstra 算法虽然好,但是他不能解决带有负权边的(边的权值为负数)的图,下面我们就来说一下几乎完妹求最短路径的算法Bellman-ford.Bellman-ford算法也非常简单,核心代码只有 ...

  • Algorithm:C++语言实现之图论算法相关(图搜索广度优先BFS、深度优先DFS,最短路径SPF、带负权的最短路径Bellman-ford、拓扑排序)

    Algorithm:C++语言实现之图论算法相关(图搜索广度优先BFS.深度优先DFS,最短路径SPF.带负权的最短路径Bellman-ford.拓扑排序) 一.图的搜索 1.BFS (Breadth ...

  • 图的应用:最小生成树

    图的应用:最小生成树 在学习了图的基本结构和遍历方式后,我们再继续地深入学习一些图的基本应用.在之前的数据结构中,我们并没接触太多的应用场景,但是图的这两类应用确是面试或考试中经常出现的问题,而且出现 ...

  • 小白也能看懂:人工智能的十大经典算法介绍

    正文共:2732 字 37 图 预计阅读时间: 7 分钟 弱人工智能近几年取得了重大突破,悄然间,已经成为每个人生活中必不可少的一部分.以我们的智能手机为例,看看到底温藏着多少人工智能的神奇魔术. 下 ...

  • 十大经典排序算法(动图演示)

    0.算法概述 0.1 算法分类 十种常见排序算法可以分为两大类: 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序. 非比较类排序: ...

  • 十大经典排序算法

    转载自:十大经典排序算法(动图演示) 0.算法概述 0.1 算法分类 十种常见排序算法可以分为两大类: 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为 ...

  • 十大经典排序算法 (Python版本)

    来源网络: https://github.com/hustcc/JS-Sorting-Algorithm 排序算法是<数据结构与算法>中最基本的算法之一. 排序算法可以分为内部排序和外部排 ...

  • 【十大经典日内程序化交易的模型思路(一)】

    【十大经典日内程序化交易的模型思路(一)】

  • 中医最实用的十大经典古方

    公众号 1 六味地黄丸   古方:山茱萸.地黄.山药.茯苓.泽泻.丹皮.附子.肉桂. 功效:滋阴补肾.用于肾阴亏损,头晕耳鸣,腰膝软,骨蒸潮热,盗汗遗精. 古方溯源: 涉及神经.内分泌.免疫.消化.循 ...

  • 李娜十大经典歌曲

    李娜十大经典歌曲

  • 十大经典拉伸动作,练完全身轻松

    除了常规健身撸铁,塑造身材曲线.提升肌肉力量外,小伙伴们同时也不能忽视拉伸训练的重要性! 坚持规律拉伸,逐渐强化全身关节灵活性.肌肉柔韧性,不仅有利于提升力量训练时的动作幅度.流畅性.稳定性等:更能使 ...

  • 篆书十大经典作品欣赏【珍藏】

    毛公鼎 毛公鼎(Duke Mao Tripod),西周晚期毛公所铸青铜器,清道光末年出土于陕西岐山(今宝鸡市岐山县),收藏于台北故宫博物院. 毛公鼎内铭文长达四百九十七字,记载了毛公衷心向周宣王为国献 ...