m邻接

本文详细解释了像素邻接性的概念,包括4邻接、8邻接和m邻接,并通过示例说明了这些概念在图像处理中的应用,特别是如何消除冗余连接路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

《冈萨雷斯 数字图像处理(第三版)》

http://www.cnblogs.com/liugl7/p/5249453.html

http://www.cnblogs.com/carfield/archive/2012/06/14/2548831.html

在理解m邻接之前,先了解一下像素邻域的概念:

p的4邻域就是4个水平和垂直的相邻像素组成,p的D邻域由4个对角相邻像素组成,这两组点共同组成p的8邻域。

为了建立两个像素点之间是否有连接关系,我们需要定义一些准则,令V是用于定义邻接性的灰度值集合,当V={1},表示将图像中所有为1的点关联起来,当然了V中可能有更多的像素点,那么只要是来自V中的像素点都可以定义邻接性。

4邻接

下图中V={1},找出图中4邻接的像素点

8邻接

下图中V={1},找出图中8邻接的像素点

m邻接

对于V 假设要p,q两点是m邻接的 则要满足下面两个条件之一即可      

1、q在p的4邻域中,      

2、q在p的对角邻域中,并且q的4邻域与p的4领域相交为空集(交集无点属于V)

下图中V={1},找出图中m邻接的像素点

在这个图中,8邻域中的中间的那个1可以有两条路到达右上角的那个1,这就是所说的二义性,这个情况在边缘检测里面是很不希望的。

而改成m邻域以后,中间的1像素和右上角的像素是8连通的却不是m连通的,这可以从m连通的定义得到,因此,如果用M连通从中间的1到右上角的1就只有一条路。

M邻接本质是消除了8邻接多余的连接路径,更通俗的理解是:当像素间同时存在4邻接和8邻接时,优先采用4邻接,屏蔽和一个像素同时存在4邻接的两个像素之间的8邻接。

??属于4邻接一定属于8邻接和m邻接??

转载于:https://www.cnblogs.com/qinguoyi/p/7601178.html

### 邻接表的概念 邻接表是一种用于表示图的数据结构,适用于存储稀疏图。它的基本思想是为图中的每一个顶点建立一个单链表,用来存储该顶点的所有相邻顶点及其相关信息[^1]。 对于无向图而言,如果存在 \( e \) 条边和 \( n \) 个顶点,则邻接表需要 \( n \) 个头结点以及 \( 2e \) 个表节点来描述这些边的关系。这是因为每一条边会同时出现在两个相关联的顶点对应的链表中[^3]。 ### 邻接表的实现 以下是邻接表的一种典型 C 结构体定义: ```c typedef struct ArcNode { VertexIndexType EndVertexIndex; // 边的目标顶点索引 WeightType Weight; // 边权重(可选) struct ArcNode* NextNodePtr; // 指向下一条边的指针 } ArcNode; typedef struct VertexNode { VertexType Vertex; // 当前顶点的内容 ArcNode* FirstArcNodePtr; // 指向第一条关联边的指针 } VertexNode; typedef struct AdjacencyGraph { VertexNode* Vertices; // 存储所有顶点的数组 int VertexNum; // 图中顶点的数量 int ArcNum; // 图中边的数量 } AGraph; ``` 以上代码片段展示了如何通过 `struct` 定义邻接表的核心组件。其中,`ArcNode` 表示边的信息,而 `VertexNode` 则代表每个顶点及其相连的第一条边的入口地址[^2]。 当构建实际应用时,可以通过动态分配内存的方式创建并初始化这个数据结构。例如,给定一组顶点集合和它们之间的连接关系后,程序能够逐步填充各个字段完成整个图的建模过程。 ### 邻接表的应用场景 由于邻接表仅需占用线性的额外空间复杂度 (\( O(n + m) \),\( n \) 是顶点数量,\( m \) 是边数量),因此非常适合处理大规模但密度较低的真实世界网络模型,比如社交网络分析、地图路径规划等领域内的问题求解任务。此外,在某些特定情况下还可以进一步优化访问效率或者减少冗余信息存储开销[^1]。 #### 特殊情况下的注意事项 需要注意的是,当面对非常庞大的输入规模时(如题目提到的最大可能值接近千级别甚至更大范围的情况),可能会遇到诸如栈溢出之类的运行期异常状况。此时建议改用堆区管理资源,并谨慎控制递归调用层数以免超出系统默认限制条件[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值