计算多边形和光栅图像之间的交点

时间:2012-03-09 16:27:21

标签: language-agnostic polygon intersection raster

如果我有二进制图像和不规则凸多边形,我怎么能计算它们是否相互交叉?多边形的坐标是根据图像描述的。

我对此有一些想法,来自碰撞检测或填充算法的观点,但我认为两者都不是最优的。我确信有一种经过验证的测试方法但却无法想到关键字。

这是我的意思的一个例子:

enter image description here

在这种情况下,它应该返回true。

1 个答案:

答案 0 :(得分:2)

我会推荐以下算法:

使用Bresenham算法遍历每条线的多边形边界,并在每个像素处对栅格进行采样。如果它是您接受的颜色,例如非零alpha,则报告交叉点。

这样做的好处是只能处理多边形的边缘,因此您无需迭代多边形内的所有像素。