gpt4 book ai didi

c++ - 在 C++ 中查找和存储超像素邻域的算法和数据结构

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:28:06 25 4
gpt4 key购买 nike

我有一张图片,保存着分割结果,就像这张图片。 enter image description here

我需要构建一个以不同颜色着色的补丁邻域图。结果我想要一个结构,代表以下内容 enter image description here

这里的数字代表独立的补丁,线条代表补丁的邻域。目前我不知道从哪里开始,谷歌搜索哪些关键字。

谁能提出一些有用的建议?

图像存储在OpenCV的cv::Mat类中,至于图,我打算使用Boost.Graph库。

所以,请给我一些指向代码示例和算法或关键字的链接。

谢谢。

更新。在茶歇和一些讨论之后,我想到了以下内容。

  1. 构建一个大点阵图,其中每个节点对应每个图像像素,链接连接 8 或 4 个邻居。
  2. 用相应的像素值标记每个图节点。
  3. 尝试以某种方式合并具有相同标签的节点。

我的另一个问题是我不熟悉 BGL(但是这本书正在路上:))。

那么,您如何看待这个解决方案?

更新2大概,这个link可以提供帮助。

但是,还是没有找到解决办法。

最佳答案

你可以这样解决:

  1. 定义区域(图中的数字)

    • 制作一个二维数组来存储区域编号
    • 从 (0/0) 开始并将其设置为 1(区域编号)
    • 使用 floodfill 算法或其他方法将整个区域设置为 1。
    • 在填充过程中,您可能会遇到颜色不同的坐标。将它们存储在队列中。如果您之前的填充已完成,则从这些坐标开始填充并递增区域编号。

    .

  2. 在区域之间建立联系

    • 遍历二维数组。
    • 如果你有相邻的数字,存储数字对(可能以排序的方式,你还必须检查这对是否已经存在)。如果你从左到右前进,你只需要检查下面的元素,右边和右边的对角线。

虽然我不得不承认我对这个话题一无所知..只是我的简单想法..

关于c++ - 在 C++ 中查找和存储超像素邻域的算法和数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13932464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com