c ++确定多边形轮廓中的图像

时间:2012-09-04 23:21:21

标签: c++ polygon convolution gpc

我正在使用GPC(General Polygon Clipper)来创建图像集。我无法确定图像是否来自不相交的集合。

我正在使用上面链接中定义的gpc_polygon结构,从图像数据(角落的纬度/经度)读取顶点列表...并按顺序将图像添加到多边形。

分离属于不同区域的图像非常重要。虽然我不能确定交叉区域将是非零(这本来是一个完美的测试),但我注意到已完成多边形的num_contours与不同区域的数量一致。 / p>

我认为我可以使用num_contours来确定图像是否属于某个集合。

然而,当我添加图像时,我可以看到,在一个图像上,num_contours = 1,在第二个之后,它增加到2(无论图像是否在同一部分,这是有意义的)......但是之后它不会增加,直到脱节图像的模式真的关闭 - 所以我不能真正用它来测试,至少不是自己测试。

与使用DIFF运算符从多边形中删除图像相同。

如果其他人使用过GPC或其他多边形卷积方法,或许你可以给我一些建议,我可以用它来识别哪些图像属于每个轮廓,所以我可以在之前或之后将它们分开,多边形创作?

1 个答案:

答案 0 :(得分:0)

我使用num_contours,限制值为2而不是1,并且必须反复返回,并尝试重新添加轮廓,直到我再也无法添加它们。解决方案不是最理想的,可能非常慢,并且存在不属于一起的多边形最终在同一轮廓中的情况。

相关问题