0

我正在使用开放框架和 opencv 来跟踪网络摄像头上的 blob。我正在获取 blob 质心的 x 值并对其进行跟踪。问题是,它会跳来跳去,我想知道是否有更好的方法来计算一定数量的帧上的平均位置并使用该数字,这一切都是在 draw() 函数中计算的。

void testApp::draw(){
 ofVec2f centroid = contourFinder.blobs[0].centroid;
 int width = ofGetWidth();
 float pct = (float)centroid.x / (float)width;
 float totFrame = fingerMovie.getTotalNumFrames ();
 float gotFrame = totFrame * pct;
}
4

1 回答 1

0

您应该为 N 帧创建一个循环,将获得的所有坐标相加,然后除以 N。

我对 ofx 没有经验,但必须有一个函数来获取下一帧。

循环结束后,将相机移动到平均坐标并重新初始化循环。

于 2013-06-27T22:12:49.943 回答