我已经在极值点周围画了一个轮廓线。在多边形内部还有其他点。 如何检查它们是否在轮廓线内?
cv2.pointPolygonTest()
函数。例如:dist = cv2.pointPolygonTest(cnt,(50,50),True)
。在此示例中,我们正在检查坐标(50,50)
是否存在于轮廓cnt
中。
dist
返回以下三种情况之一:
cv2.pointPolygonTest()
函数中,第三个参数决定您想要以下两种情况之一:
dist
将返回点的正/负距离,具体取决于该点是否位于轮廓内部或外部。(50, 70), (170, 152), (152, 48)
dist1 = cv2.pointPolygonTest(contours[0], (50, 70), True) #green
dist2 = cv2.pointPolygonTest(contours[0], (170, 152), True) #blue
dist3 = cv2.pointPolygonTest(contours[0], (152, 48), True) #red
print('dist1 : ', dist1)
print('dist2 : ', dist2)
print('dist3 : ', dist3)
输出:
('dist1 : ', -45.17742799230607)
('dist2 : ', 49.9799959983992)
('dist3 : ', -0.0)
np.dtype
为int类型。 - GeneralCode