0

我在这里有一个问题,我真的无法以简单的方式解决。也许有人可以帮助我从不同的角度看待这一点。基本上,我有两个大小相同的xy矩阵坐标。第一个(掩码)包含只有两个不同值的像素:-1 和 0。第二个(标签)可以包含具有整数值(从 1 到 1000)的像素。

这两个矩阵的表示如下:

  • 掩码表示构成不同超像素轮廓的像素:如果 -1 我们在边界上,否则为 0。
  • 在标签矩阵中,每个标签代表一个超像素,每个像素都分配给一个超像素标签。

我的目标是结合这两个矩阵,为每个超像素创建相关的凹多边形来提取他的顶点。

到目前为止,我的解决方案是:

  1. 创建字典:键是表示超像素的标签,值是包含超像素轮廓像素的数组。
  2. 运行 ConvexHull 以查找字典每个键的凸多边形。
  3. 对于我找到的每个凸多边形,运行一个算法来检测与凹相关的多边形(https://github.com/sadaszewski/concaveman-cpp)。

不幸的是,我对这个解决方案不够精确,因为结果可能与原始超像素不同。

两个矩阵的简单示例:

标签:

1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 2 2 2 1 1
1 1 2 2 2 1 1
1 1 2 2 2 1 1

面具:

-1 -1 -1 -1 -1 -1 -1
-1 -1 0 0 0 0 -1
-1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1
-1 -1 -1 0 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1

非常感谢您的帮助!

4

0 回答 0