Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 使用PointPolyContest检查点是否落在轮廓内在嵌套形状中始终返回true_Image_Opencv_Contour - Fatal编程技术网

Image 使用PointPolyContest检查点是否落在轮廓内在嵌套形状中始终返回true

Image 使用PointPolyContest检查点是否落在轮廓内在嵌套形状中始终返回true,image,opencv,contour,Image,Opencv,Contour,我试图创建轮廓,我检查,看看是否有一个点落在里面,但它一直返回1,即使它没有 我创建了一个黑色的遮罩,然后使用一组点调用fillPoly with white,从而创建了这个图像 然后,我使用findContours查找此图像的计数。下面是图片。 这是正确的。一切似乎都很好 但稍后我想使用PointPolyContest(第一幅图像中的白色部分)检查一个点是否落在轮廓内,但它总是返回1或0 for point in points for contour in contours

我试图创建轮廓,我检查,看看是否有一个点落在里面,但它一直返回1,即使它没有

我创建了一个黑色的遮罩,然后使用一组点调用fillPoly with white,从而创建了这个图像

然后,我使用findContours查找此图像的计数。下面是图片。

这是正确的。一切似乎都很好

但稍后我想使用PointPolyContest(第一幅图像中的白色部分)检查一个点是否落在轮廓内,但它总是返回1或0

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是否有子项,如果有,请检查它是否也满足子项。

这是一个层次问题,请参阅