0

別のトリッキーな質問です。ここに表示されているのは、1 つの平面で三角形を形成する 3 つの LED と、他の 3 つの平面から約 18mm 上の中央にある別の LED で構築された私の物理的なピラミッドです。(直角三角形を見るとよくわかるかもしれません。これは水平軸を中心に回転しており、棒のダイオードがよく見えます)。

三角形の例

2 番目の写真は、実行中のプログラムを示しています。左のボックスは、LED の未処理の写真 (IR フィルターを使用した写真) を示しています。中央の写真は、私のプログラムがポイントを見つけたことを示しており、いくつかの条件に基づいて、どのポイントがどれであるかを知ることもできます (C は常に、ダイオード間の最大距離を持つ両方の線が交差する場所であり、両方の最長の長さは常にa および b)。しかし、これは気にしないでください。ポイントが 100% 正しく検出されていることはわかっています。

右の図は、C と c の間の高さなどの計算値です。もっと計算することはできますが、行き詰まっているので、今は気にしませんでした。

3 次元空間でのピラミッドの回転と平行移動を計算したいと考えています。

黄色の点は、カメラの z 方向に三角形の中心を通る軸を中心に回転した後の LED です。したがって、他の2を計算するときに、これについて心配する必要はありません。横軸の周りの回転と縦軸の周りの回転。これは、三角形の中心から 4 番目のダイオードまでの距離の長さ (4 番目のダイオードが回転に伴って画像平面上を移動することがわかります)、または両方の軸の長さで簡単に計算できます。

しかし、私の問題は未知の深さです。

これはすべての長さに影響します (a、b、c、およびこれを d および e と呼ぶ場合、中心から 4 番目のダイオードまでの長さ)。私は実際のピラミッドの測定値を +-5% 程度の許容範囲で知っていますが、ズームの影響も受けます。それで、どうすればこれに対処できますか?

横軸の長さ、縦軸の長さ、角度のアルファ、ベータ、ガンマ、長さの d と e の比率の方程式を考えました。

アルファ、ベータ、ガンマは、軸の周りの回転によってのみ影響を受けます (これを知りたいです。回転とズームを知りたいです)。一方の軸の周りの回転は、もう一方の軸の周りの回転とは反対の効果があります。したがって、両方の軸を同じ角度で回転させると、軸の長さの比率は以前と同じになります。

ズーム(実際:カメラにどれだけ近いか、最初に知りたいこと:倍率2x、3x、0.5、0,4322344、.....)は角度には影響しませんが、すべての長さ: a,b,c,d,e,hc (軸の垂直方向の長さ)、hx (まだ計算していませんが、簡単に計算できます。hx という名前はさまざまです。今、ランダムなものを考えただけです。は横軸の長さです)同じように(私は推測します)。

私は多くのことを考えてきましたが、私は愚かすぎると思います。

それで、回転またはズーム倍率のいずれかについて、正しい方程式を私に与えることができる数学の天才がそこにいますか?

(また、Posit/Downhill-Simplex などを使用することも考えましたが、すべての Point などのように、すでに多くのことを知っているので、これが最も良いでしょう)

お願いします、お願いします、あなたの助けが本当に必要です!私はこれをC++で書いており、知る必要がある場合はOpenCVの助けを借りていますが、それはもっと数学的な問題だと思います.

前もって感謝します!

ああ、そしてアルファは常にベータと同じようです!

編集:2番目の写真を削除する必要がありました

4

2 に答える 2

1

OpenCV のSolvePnP()を見てください。直接使用しない場合でも、ドキュメントには使用されているメソッドの引用があります。

于 2012-12-04T17:19:19.003 に答える
1

Boost Geometryまたはこちらもご覧ください

于 2012-12-04T13:52:47.480 に答える