4

私たちは車両カウントのプロジェクトを行っています(OpenCVを使用)。ここで、1つのフレーム内のオブジェクトの重心から隣接するフレームまでのユークリッド距離を見つける必要がありますか?私たちのプロジェクトでは、重心を見つけるまでに完了しました。

4

2 に答える 2

5

キャプチャ間でカメラが移動していないと仮定しますので、登録について心配する必要はありません。

cv::Point取得した2つの図心を表す2つのオブジェクトが必要です。ユークリッド距離は次のように計算できます。

double euclideanDist(Point p, Point q)
{
    Point diff = p - q;
    return cv::sqrt(diff.x*diff.x + diff.y*diff.y);
}

int main(int /*argc*/, char** /*argv*/)
{
    Point centroid1(0.0, 0.0);
    Point centroid2(3.0, 4.0);

    cout << euclideanDist(centroid1, centroid2) << endl;

    return 0;
}

これは5(つまり、3-4-5三角形)を出力します。

お役に立てば幸いです。

于 2012-03-07T14:24:14.453 に答える
0

pおよびqが 型の場合、用語を または のいずれかにint型キャストするようにしてください。こうすることで、より正確なユークリッド距離を得ることができます。(diff.x*diff.x + diff.y*diff.y)doublefloat

于 2013-12-02T18:17:37.653 に答える