gpt4 book ai didi

opencv - 如何计算每个对象的力矩和位置而不是跨对象的平均值?

转载 作者:太空宇宙 更新时间:2023-11-03 21:38:02 25 4
gpt4 key购买 nike

我使用以下代码通过 o​​pencv 计算物体的力矩和位置:

// calc object moments
CvMoments *moments = (CvMoments*) malloc(sizeof(CvMoments));
cvMoments(threshy, moments, 1);

// get the moment values
double moment10 = cvGetSpatialMoment(moments, 1, 0);
double moment01 = cvGetSpatialMoment(moments, 0, 1);
double area = cvGetCentralMoment(moments, 0, 0);

// save the X and Y position from previous iteration.
int lastX = currentX;
int lastY = currentY;

// calculate the new X and Y positions.
currentX = moment10/area;
currentY = moment01/area;

这很好用,只要场景中只有一个对象。但是,如果有多个对象,currentXcurrentY 将导致所有对象的中点。

有没有办法计算每个物体的力矩(和坐标)?

最佳答案

你将不得不为此使用countours。对于 C++ api,您有一个名为 cv::findContours 的函数,您可以在其中传递阈值图像,然后计算每个计数/对象的力矩。在 OpenCV documentation 中查找更多详细信息.

关于opencv - 如何计算每个对象的力矩和位置而不是跨对象的平均值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12553516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com