问题说明:我有一个矩形且均匀间隔的像素图像,其顶点坐标为 (i,j), (i+1,j), (i, j+1), (i+1, j+1) [i= 0,...,m-1; j=0,...,n-1] 和具有顶点坐标 (x_1,y_1), ..., (x_n, y_n) 的多边形 P。现在我想有效地计算每个像素与 P 重叠的百分比。P 可以是非凸的,甚至是自相交的。
本质上,这是扫描线光栅化算法的“软”概括,可以有效地检查像素中心是否位于多边形内部/外部。
我可以想到以下方法:
(1) 对图像进行上采样(例如,10*10 倍),计算多边形内有多少个子像素中心,然后除以 100。问题:时间效率、内存效率、准确性。
(2) 使用扫描线算法在稍大的 (0.5,0.5) 平移网格上计算完全位于内部/外部的像素,创建“边界”像素列表,沿边缘逆时针行走,然后计算沿途所有像素的交叉区域。问题:需要微妙的编码,容易引入错误。
我的问题:有没有人遇到过这个问题,你知道第三种更好的方法吗?如果没有,您是否在 (1) 或 (2) 方面获得了更好的体验?我认为这个问题可能出现在抗锯齿的背景下?