4邻接,8邻接,m邻接:定义理解

定义:

白话:

4邻域:

8邻域:

定义像素p:坐标(xp,yp),像素值K;

定义像素q:坐标(xq,yq),像素值也为K;

(a) 4邻接:像素q位于像素p的4邻域内(也就是p的上下左右4个位置中的一个),且两者像素值相等;

(b) 8邻接:像素q位于像素p的8邻域内(也就是p的上下左右和斜对角共8个位置中的一个),且两者像素值相等;

(b) m邻接:像素q位于像素p的8邻域内(也就是p的上下左右和斜对角共8个位置中的一个),两者像素值相等,且再观察p和q的4邻域,像素位置相重叠的位置(取交集),其像素值不等于K;

有两种类型的m邻接:

 

引申:

像素点之间的距离度量:

(1)  D4距离:

(2)  D8距离:

(3) Dm距离:

 

 

  • 12
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮你提供一些 C++ 代码示例来实现图的邻接表或邻接矩阵表示,并创建图。 首先是邻接表的实现: ```cpp #include <iostream> #include <vector> using namespace std; // 定义图的邻接表表示 struct Graph { int V; // V 表示图的节点数 vector<int> *adj; // adj 表示每个节点的邻居节点列表 Graph(int V) { this->V = V; adj = new vector<int>[V]; } void addEdge(int u, int v) { adj[u].push_back(v); adj[v].push_back(u); // 如果是无向图,则需要加上这一句 } void printGraph() { for (int i = 0; i < V; i++) { cout << "Node " << i << " has neighbors: "; for (auto j : adj[i]) { cout << j << " "; } cout << endl; } } }; int main() { Graph g(5); // 创建一个有 5 个节点的图 g.addEdge(0, 1); g.addEdge(0, 4); g.addEdge(1, 2); g.addEdge(1, 3); g.addEdge(1, 4); g.addEdge(2, 3); g.addEdge(3, 4); g.printGraph(); // 输出图的邻接表形式 return 0; } ``` 上述代码中,我们先定义了一个结构体 `Graph` 来表示图,其中 `V` 表示图的节点数,`adj` 是每个节点的邻居节点列表。接着,我们实现了 `addEdge` 函数来添加边,然后实现了 `printGraph` 函数来输出邻接表的形式。 接下来是邻接矩阵的实现: ```cpp #include <iostream> #include <vector> using namespace std; // 定义图的邻接矩阵表示 struct Graph { int V; // V 表示图的节点数 vector<vector<int>> adj; // adj 表示每个节点之间的关系 Graph(int V) { this->V = V; adj.resize(V, vector<int>(V, 0)); } void addEdge(int u, int v) { adj[u][v] = 1; adj[v][u] = 1; // 如果是无向图,则需要加上这一句 } void printGraph() { for (int i = 0; i < V; i++) { for (int j = 0; j < V; j++) { cout << adj[i][j] << " "; } cout << endl; } } }; int main() { Graph g(5); // 创建一个有 5 个节点的图 g.addEdge(0, 1); g.addEdge(0, 4); g.addEdge(1, 2); g.addEdge(1, 3); g.addEdge(1, 4); g.addEdge(2, 3); g.addEdge(3, 4); g.printGraph(); // 输出图的邻接矩阵形式 return 0; } ``` 上述代码中,我们同样定义了一个结构体 `Graph` 来表示图,其中 `V` 表示图的节点数,`adj` 是每个节点之间的关系。接着,我们实现了 `addEdge` 函数来添加边,然后实现了 `printGraph` 函数来输出邻接矩阵的形式。 希望这些代码示例能够帮助你实现图的邻接表或邻接矩阵表示,并创建图。如果你还有其他问题,可以随时问我。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值