将2D深度图像划分为相似值的不重叠矩形区域

Divide a 2D depth image into non-overlapping rectangular areas of similar values

我正在尝试将 2D 深度图像分割成具有相似值的非重叠矩形区域,如示例所示:

在此示例中,深度图像被分割成四个矩形:4×3×6 黄色、2×4×15 绿色、4×2×8 橙色和 2×2×3 蓝色。请注意,矩形有最小长度和宽度限制,在本例中为 2,因此右下角被分割为一个区域而不是两个区域。

这是一个简单的例子,深度图可以比这复杂很多。这是一个非常具有挑战性的问题,我不希望它能得到最优解决,但任何比固定分辨率网格更优化的解决方案都值得赞赏。

我想这可以通过一些 RANSAC 过程来解决,类似于飞机装配,但我还没有弄清楚具体如何做到这一点。该问题也类似于图像分割,其中每个片段都是矩形且不重叠。

解决这个问题的算法的想法(不是最优的):

  1. 检查 垂直 相邻元素以查找可以分组的每个元素。分组规则需要经过一些“反复试验”后由您确定。 Single-element 组也是可能的。每个元素都必须添加到一个且仅一个组中。

  2. 遍历组并检查这些组的水平邻居是否“足够接近”,如果是,则合并组。

  3. 遍历组并检查这些组的垂直 邻居是否“足够接近”,如果是,则合并组。

  4. 继续第 2 步和第 3 步,当没有单个组合并时结束

  5. 最后,删除那些不满足width/height要求的组