【问题标题】:Help understanding marching squares algorithm帮助理解行进方块算法
【发布时间】:2011-05-13 05:02:25
【问题描述】:

在我的游戏中,我想沿单色图像的边缘布置正方形:

所以我发现这个算法应该可以解决这个问题。 http://en.wikipedia.org/wiki/Marching_squares

实现起来似乎并不难,我只是觉得我不明白维基在说什么。我想我必须将图像分解成单元格,每个单元格代表图像上的 2x2 像素?那是对的吗?然后我被这条指令迷失了:

对于轮廓网格中的每个单元格:

1. 组合单元格角落的 4 位以构建二进制索引:以顺时针方向绕单元格移动,使用按位 OR 和左移,从最重要的位开始,将位附加到索引中左上角,到左下角的最低有效位。生成的 4 位索引可以有 0-15 范围内的 16 个可能值。

我不确定如何添加该位。

谢谢

【问题讨论】:

  • 行进广场不是你想要的,尽管它的名字。

标签: c++ algorithm


【解决方案1】:

创建 2x2 单元后,为每个单元计算一个如下所示的数字:

  • 将数字设置为 0
  • 如果左上角高于阈值,加8
  • 如果右上角的点在上面,加4
  • 如果右下点在上面,加2
  • 如果左下点高于阈值,则加 1。

编辑格式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多