【发布时间】:2015-08-31 18:57:35
【问题描述】:
我有两个用二进制图像表示的形状,我需要检查它们是否重叠。其中之一以已知量旋转和平移。它们可以是凹形的。
可以容忍一些不准确(大约一个像素错误)并且速度是有利的;我期望位图的宽度/高度具有线性时间复杂度。典型尺寸可扩展到 512 x 512。
允许对形状进行预处理,但只能在之前应用旋转。
我想到的一个可能的解决方案是将旋转的形状变成多边形,使用扫描填充算法并检查水平扫描线中的重叠段(预先计算的固定形状的扫描线表示)。
这将满足复杂性要求。
您是否看到更好/更简单/更有效的方法?
更新:
没有旋转,有一个基于形状运行长度编码的简单解决方案,运行时间与运行次数成线性关系。我怀疑可以做得更好。
【问题讨论】:
标签: algorithm computational-geometry