python – 如何检查点是否放在轮廓内?

weixin_38083061 2019-09-12 12:31:20
我画了一个极端点周围的轮廓.里面的多边形图我有其他点.如何检查它们是否在轮廓内?
...全文
435 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zaaac 2020-12-10
  • 打赏
  • 举报
回复
引用 1 楼 的回复:
您可以使用OpenCV中提供的cv2.pointPolygonTest()函数.
这个宝贝回答得好!
weixin_38100924 2019-09-12
  • 打赏
  • 举报
回复
您可以使用OpenCV中提供的cv2.pointPolygonTest()函数. 例如: dist = cv2.pointPolygonTest(cnt,(50,50),True) 在这个例子中,我们检查坐标(50,50)是否与轮廓cnt一起出现 > dist返回以下三种中的一种: >如果该点位于轮廓内,则为正值>如果该点在轮廓之外,则为负值>如果该点在轮廓上,则为零 >在函数cv2.pointPolygonTest()中,第三个参数决定是否需要以下两个之一: >如果为True,则dist返回点的正距离或负距离,如果它分别位于轮廓内部或外部.>另一方面,如果设置为False,则返回1,-1或0,具体取决于位于内部,外部或轮廓上的点 有关详细信息,请参见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)

476

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧