現在、マーカーを検出するためにカメラを使用しています。opencv と Aruco ライブラリを使用しています。
私だけが今問題に悩まされています。2 つのマーカー間の距離が特定の値より小さいかどうかを検出する必要があります。距離を計算する機能があり、すべてを比較できます。しかし、すべてのマーカー (約 5/6) とそれらがどれだけ近いかを追跡する最も効率的な方法を探しています。
マーカー付きのリストがありますが、それらすべてを効率的に比較する方法が見つかりません。
私は
Vector <Marker>
という関数もありますgetDistance
。
double getDistance(cv::Point2f punt1, cv::Point2f punt2)
{
float xd = punt2.x-punt1.x;
float yd = punt2.y-punt1.y;
double Distance = sqrtf(xd*xd + yd*yd);
return Distance;
}
Marker
s には が含まれているのでPoint2f
、簡単に比較できます。