首页 > 编程知识 正文

五大经典算法,数字图像处理算法典型实例

时间:2023-05-04 12:47:38 阅读:41158 作者:3371

导读:随着现代社会的发展,信息的形式和数量正在迅猛增长。其中很大一部分是图像,图像可以把事物生动地呈现在我们面前,让我们更直观地接受信息。

这是小编的其他文章,希望对大家有帮助。点击即可阅读

人工智能常用的十大算法人工智能数学基础(2) ) ) ) ) ) ) ) ) ) ) )。

此外,我们还将200G人工智能学习笔记本、课堂视频和面试宝典集中在一起,免费获得

分享给大家!

定义图像处理(image processing)又称为影像处理,是用计算机对图像进行达到所需结果的技术。 应用广泛,多用于图形学、大气科学、天文学、美图、图像识别的提高等

图像处理是指分析、加工、处理图像以满足视觉、心理和其他要求的技术。 图像处理是信号处理在图像场中的应用,目前很多图像以数字形式存储,所以图像处理多指数字图像处理。

简要介绍数字图像处理领域中的经典算法。

http://www.Sina.com/DFS (http://www.Sina.com /其目的是实现具有搜索到的结构的叶节点,即不包含超链接的HTML文件。

扫描深度优先图的算法是搜索深度优先递归调用步骤,假定某个图g的初始状态为所有顶点未访问,选择g中的任意顶点I作为扫描的初始点。

1、访问搜索到的未访问的邻点

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

3、搜索该顶点未访问的邻点,如果存在该邻点,则从该邻点进行同样的访问和搜索,重复直至所有节点访问。

深度优先搜索(

首先选定图的类别(有向图、有向图),然后选定图的存储结构,根据输入的顶点或边缘绘制图; 输出对应的邻接表或邻接矩阵;

基于现有的邻接矩阵或邻接表,用递归方法建立深度优先搜索遍历算法,并输出遍历结果;

DFS(Depth-First-Search)深度优先搜索,是计算机术语,是一种在开发爬虫早期使用较多的方法,是搜索算法的一种1访问收到的未访问节点(如果可能)并将其标记并放入堆栈中。

2如果无法执行规则1,则堆栈不为空,则从堆栈中弹出一个元素。

3如果规则1和规则2无法运行,请完成遍历。

代码中的图使用Graph图-邻接矩阵法表示,其他表示法请参照Graph图-邻接表法

代码中的堆栈是辅助结构,用于描述访问的节点。 有关堆栈的详细说明,请参见阵列堆栈和链接堆栈。

Vertex表示图中的节点,包括访问、是否访问、清除访问标志的方法。 Graph.main :提供简单的测试。 代码可以从指定下标的节点开始深度遍历。 代码相对简单,除了graph.DSF(inti )深度优先扫描算法之外,没有太多评论。

http://www.Sina.com/BFS (http://www.Sina.com /简单地说,bfs是从根节点开始并沿着树的宽度横穿树的节点。 如果所有节点都被访问,算法将中止。 宽度优先搜索的实现一般使用开放-关闭表。

算法详解:BFS是一种盲目搜索方法,旨在系统地展开图中所有节点进行检测,寻找结果。 也就是说,不考虑结果的可能地址,而是彻底搜索整个图直到找到结果。 BFS不使用经验法则算法。

从算法的角度看,通过展开节点获得的所有子节点都将添加到先进先出队列中。 在典型的实现中,相邻节点未验证的节点位于被称为open的容器中,例如位于队列或链表中,并且所验证的节点位于被称为closed的容器中。 (打开-关闭表)

从3358 www.Sina.com/http://www.Sina.com /开始,出现了许多预处理算法(ALT、CH、HL等),在线查询的效率是A*算法的几千倍到数万倍。

*算法操作:首先,将开始节点s放入OPEN表中,清空关闭表,算法说明:

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'就是一棵最小生成树。

 匈牙利算法

匈牙利算法是一种在多项式时间内求解任务分配问题的组合优化算法,并推动了后来的原始对偶方法。美国数学家可爱的睫毛膏于1955年提出该算法。此算法之所以被称作匈牙利算法,是因为算法很大一部分是基于以前匈牙利数学家Dénes Kőnig和Jenő Egerváry的工作之上创建起来的。

算法轮廓:

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 之间的一条路径,沿该路径可以压入更多的流,从而增加流的值。反复进行这一过程,直至增广路径都被找出为止。

复杂:

通过将流量增加路径添加到已在图中建立的流量,当在图表中不再能够找到流量增加路径时,将达到最大流量。但是,无法确定是否会达到这种情况,因此可以保证的最佳方案是,如果算法终止,答案将是正确的。在算法永远运行的情况下,流可能甚至不会收敛到最大流量。但是,这种情况只发生在不合理的流量值。当容量为整数时,Ford-Fulkerson的运行时间受O(E f)的限制(参见大O表示法),其中E是数字图中的边和f是图中的最大流量。这是因为每个扩充路径都可以在O(E))时间内找到并且将流量增加至少1 的整数量,其上限f 。

具有保证终止和独立于最大流量值的运行时间的Ford-Fulkerson算法的变体是Edmonds-Karp算法,该算法在中运行O(VE2)时间。

小编整理了有关人工智能的资料,有python基础,图像处理opencv自然语言处理、机器学习
数学基础等资源库,想学习人工智能或者转行到高薪资行业的,大学生也非常实用,无任
何套路免费提供,,扫码+vx领取内部资源,人工智能题库,大厂面试题 学习大纲 自学课程大纲还有200G人工智能资料大礼包免费送哦~ 

欢迎大家扫码撩我呀~

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。