当前位置: 首页 > 知识库问答 >
问题:

用哪种数据结构来存储C++中的相邻像素距离是合适的?

郎成弘
2023-03-14

(a)如果两个或两个以上的邻居具有小于T的颜色距离,则在(i,j)处的像素被分配具有最小颜色距离的一个的标签。

(b)将颜色距离最小的像素的标签也分配给其他相邻像素。

(c)将图像中具有与其他相邻像素相同标签的所有先前标记的像素重新分配具有最小颜色距离的像素的标签。

而且,如果任何一个条件满足(1-3),我需要将那个对应像素的标签分配给当前像素(I,j)。所以我还需要知道它是哪个邻居的标签(即左、上、左上对角线、右上对角线)。我怎么弄到那个?

共有1个答案

厍浩广
2023-03-14

哈希表可以很好地用于此用例:

unordered_map<srcpixel,vector<pair<targetpixel,dist> > >

因此,每个srcpixel将作为哈希表中的一个键,而值将是一个包含它与邻居的距离的向量。

这将是快速的,每个SRC像素的O(1)查找时间,然后线性遍历它的邻居。

 类似资料:
  • 主要内容:邻接表计算顶点的出度和入度通常,图更多的是采用 链表存储,具体的存储方法有 3 种,分别是 邻接表、 邻接多重表和 十字链表。 本节先讲解图的邻接表存储法。邻接表既适用于存储无向图,也适用于存储有向图。 在具体讲解邻接表存储图的实现方法之前,先普及一个"邻接点"的概念。在图中,如果两个点相互连通,即通过其中一个顶点,可直接找到另一个顶点,则称它们互为邻接点。 邻接指的是图中顶点之间有边或者弧的存在。 邻接表存储图的实现方式

  • 问题内容: MySql中使用哪种数据结构? 问题答案: 可能很多,但从B树开始。

  • 主要内容:图存储结构基本常识,图存储结构的分类我们知道,数据之间的关系有 3 种,分别是 "一对一"、"一对多" 和 "多对多",前两种关系的数据可分别用 线性表和树结构存储,本节学习存储具有"多对多"逻辑关系数据的结构—— 图存储结构。 图 1 图存储结构示意图 图 1 所示为存储 V1、V2、V3、V4 的图结构,从图中可以清楚的看出数据之间具有的"多对多"关系。例如,V1 与 V4 和 V2 建立着联系,V4 与 V1 和 V3 建立着

  • 主要内容:树的结点,子树和空树,结点的度和层次,有序树和无序树,森林,树的表示方法,总结之前介绍的所有的 数据结构都是 线性存储结构。本章所介绍的树结构是一种非线性存储结构,存储的是具有“一对多”关系的数据元素的集合。                                                                          (A)                                                          

  • 我是系统开发的新手,想知道是否有比我更有经验的人可以帮助我解决有关数据库,Web服务和整体架构的一些问题。 我有一个应该每天运行的网络刮刀。它将从多个公开的政府数据中收集、筛选和汇总当地企业的数据。这些数据将被存储到Postgres数据库中。 然后,用户将拥有一个管理仪表板,可以在其中查看一些指标和趋势。我不知道的是,这个仪表板是否应该在用户每次加载仪表板时查询数据库。 我想这不是最明智的方法,因

  • 前面讲过,无向图的存储可以使用邻接表,但在实际使用时,如果想对图中某顶点进行实操(修改或删除),由于邻接表中存储该顶点的节点有两个,因此需要操作两个节点。 为了提高在无向图中操作顶点的效率,本节学习一种新的适用于存储无向图的方法—— 邻接多重表。 注意,邻接多重表仅适用于存储无向图或无向网。 邻接多重表存储无向图的方式,可看作是邻接表和十字 链表的结合。同邻接表和十字链表存储图的方法相同,都是独自