Image 使用PointPolyContest检查点是否落在轮廓内在嵌套形状中始终返回true
我试图创建轮廓,我检查,看看是否有一个点落在里面,但它一直返回1,即使它没有 我创建了一个黑色的遮罩,然后使用一组点调用fillPoly with white,从而创建了这个图像 然后,我使用findContours查找此图像的计数。下面是图片。 这是正确的。一切似乎都很好 但稍后我想使用PointPolyContest(第一幅图像中的白色部分)检查一个点是否落在轮廓内,但它总是返回1或0Image 使用PointPolyContest检查点是否落在轮廓内在嵌套形状中始终返回true,image,opencv,contour,Image,Opencv,Contour,我试图创建轮廓,我检查,看看是否有一个点落在里面,但它一直返回1,即使它没有 我创建了一个黑色的遮罩,然后使用一组点调用fillPoly with white,从而创建了这个图像 然后,我使用findContours查找此图像的计数。下面是图片。 这是正确的。一切似乎都很好 但稍后我想使用PointPolyContest(第一幅图像中的白色部分)检查一个点是否落在轮廓内,但它总是返回1或0 for point in points for contour in contours
for point in points
for contour in contours
if pointPolygonTest(contour, point, false) >= 0 // this always returns 1
terminate
我认为问题在于轮廓是嵌套的。我如何才能做到这一点
我希望PointPolyMonTest忽略我穿过红色的部分,因为它们在轮廓之外
你知道我可能做错了什么吗
如果需要,我可以包含代码,但我认为不需要。问题是我需要检查contor是否有子对象,并检查它是否满足子对象。例如,拿大康托来说。如果PointPolyContest返回1或0,请检查contour是否有子项,如果有,请检查它是否也满足子项。这是一个层次问题,请参阅