在opencv中找到轮廓/物体之间的距离

find distance between contours/objects in opencv

本文关键字:之间 距离 轮廓 opencv      更新时间:2023-10-16

我已经使用cvfindcontour找到了轮廓,现在我想访问第一个和第二个轮廓,并找到它们之间的欧几里得距离。有人能帮我弄一下它的代码吗?

CvPoint *contourPoint, *contourPoint2;
contourPoint = (CvPoint *)CV_GET_SEQ_ELEM(CvPoint,contours,1);
contourPoint2 = (CvPoint *)CV_GET_SEQ_ELEM(CvPoint,contours,2);
double dis = sqrt(double((contourPoint->x - contourPoint2->x) * (contourPoint->x - contourPoint2->x) + (contourPoint->y - contourPoint2->y) * (contourPoint->y - contourPoint2->y)) );

是正确的方式吗?

我会使用cvMoments计算每个轮廓的质心,然后计算两个质心之间的欧几里得距离。这里有一篇关于openframeworks的文章。这是一篇来自openv邮件列表的文章。

希望有帮助!