2024-10-05 11:46:16 发布
网友
我已经画了一个关于极限点的轮廓。在多边形内我有其他点。 如何检查它们是否在轮廓内?
您可以使用OpenCV中的cv2.pointPolygonTest()函数。
例如:
dist = cv2.pointPolygonTest(cnt,(50,50),True)
在这个例子中,我们检查坐标(50, 50)是否与轮廓cnt一起存在
(50, 50)
cnt
dist返回以下三个值之一:
dist
在函数cv2.pointPolygonTest()中,第三个参数决定是否需要以下两个参数之一:
cv2.pointPolygonTest()
有关详细信息,请参见THE DOCS
我添加了一个例子来说明它是如何工作的。我考虑了以下获得轮廓的图像:
我假设以下几点可以作为说明:
(50, 70), (170, 152), (152, 48)
dist1 = cv2.pointPolygonTest(contours[0], (50, 70), True) dist2 = cv2.pointPolygonTest(contours[0], (170, 152), True) dist3 = cv2.pointPolygonTest(contours[0], (152, 48), True) print('dist1 : ', dist1) print('dist2 : ', dist2) print('dist3 : ', dist3)
输出:
('dist1 : ', -45.17742799230607) ('dist2 : ', 49.9799959983992) ('dist3 : ', -0.0)
您可以使用OpenCV中的cv2.pointPolygonTest()函数。
例如:
dist = cv2.pointPolygonTest(cnt,(50,50),True)
在这个例子中,我们检查坐标
(50, 50)
是否与轮廓cnt
一起存在dist
返回以下三个值之一:在函数
cv2.pointPolygonTest()
中,第三个参数决定是否需要以下两个参数之一:dist
返回点的正距离或负距离,如果它分别位于轮廓内部或外部。有关详细信息,请参见THE DOCS
图解:
我添加了一个例子来说明它是如何工作的。我考虑了以下获得轮廓的图像:
我假设以下几点可以作为说明:
(50, 70), (170, 152), (152, 48)
输出:
相关问题 更多 >
编程相关推荐