ハフ変換を使用してオプティカル フロー アルゴリズムの線間の交点を計算しようとしています。ただし、交差点を計算するためにアルゴリズムを使用すると、必要なポイントが得られません。
Lines を、私が作成した というクラスのインスタンスとして保存しますImageLine
。これが私の交差点メソッドのコードです。
Point ImageLine::intersectionWith(ImageLine other)
{
float A2 = other.Y2() - other.Y1();
float B2 = other.X2() - other.X1();
float C2 = A2*other.X1() + B2*other.Y1();
float A1 = y2 - y1;
float B1 = x2 - x1;
float C1 = A1 * x1 + B1 * y1;
float det = A1*B2 - A2*B1;
if (det == 0)
{
return Point(-1,-1);
}
Point d = Point((B2 * C1 - B1 * C2) / det, -(A1 * C2 - A2 * C1) / det);
return d;
}
この方法は正しいですか、それとも何か間違ったことをしましたか? 私が知る限り、ハードコーディングした単一のポイントの場合と同様に機能するはずですが、実際のデータを使用すると、適切な交差点を取得できませんでした。