OPV*_*OPV 4 python opencv opencv3.0 opencv-contour
我画了一个极端点周围的轮廓.里面的多边形图我有其他点.如何检查它们是否在轮廓内?
Jer*_*uke 14
您可以使用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)
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)
Run Code Online (Sandbox Code Playgroud)
输出:
('dist1 : ', -45.17742799230607)
('dist2 : ', 49.9799959983992)
('dist3 : ', -0.0)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4728 次 |
| 最近记录: |