在OpenCV中,对于给定的点(x,y)
,找到属于已知轮廓cnt
的最接近它的点的最佳方法是什么? (我认为这一点位于轮廓之外。)
dist = cv2.pointPolygonTest(cnt,(x,y),True)
pointPolygonTest返回最近轮廓点的距离,但我看不到达到实际点的方法。
当然,我可以遍历轮廓点列表并重新计算距离最小的距离。 (有关SO的几个问题解释了更复杂的方法,可以从给定点的点列表中找到最接近的点。)
或者,我可以绘制一个半径为dist
的圆圈,并看到圆圈和轮廓接触的位置。
这两个选项看起来都很笨重,所以我想知道我是否错过了更直接的内容。