我会创建一个矩阵,在列[i]中包含从轮廓的固定点(质心mc(i))到轮廓点[i]的距离。
以下是我查找轮廓和质心的代码:
findContours(binMat, contours, cv::RETR_EXTERNAL, CHAIN_APPROX_SIMPLE,Point(0,0));
/// Get the moments
vector<Moments> mu(contours.size());
for (int i = 0; i < contours.size(); i++)
{
mu[i] = moments(contours[i], false);
}
/// Get the mass centers
vector<Point2f> mc(contours.size());
for (int i = 0; i < contours.size(); i++)
{
mc[i] = Point2d(mu[i].m10 / mu[i].m00, mu[i].m01 / mu[i].m00);
}
这段代码运行良好。
接下来,我尝试了多种方式来寻找距离,但由于我是新手在使用C++和OpenCV进行编程,遇到了许多问题。
Points
。要访问x和y属性,只需执行pt.x
或pt.y
即可。但是我一直在使用Python API。 - Aidenhjj