高速平面回転アルゴリズム?
-
02-07-2019 - |
質問
私は、IUPR の場合と同様に、画像内で最も目立つ長方形を検出し、長方形の左下が原点に位置するように回転しようとするアプリケーションに取り組んでいます。 オスカー システムは機能します。ただし、最も目立つ長方形が検出された後は、その長方形が常に「正面」であるとは限らないため、深度コンポーネントまたは Z 軸をどのように考慮するかがわかりません。私の理解をさらに進めるための例があれば、大変感謝いたします。以下に示すのは、IUPR の OSCAR システムの例です。
代替テキスト http://quito.informatik.uni-kl.de/oscar/oscar.php?serverimage=img_0324.jpg&montage=use
解決
この場合、実際に 3D 情報を扱う必要はありません。これは、ある座標セットから別の座標セットへの単なるマッピング関数です。
アフィン変換を見てください。単純な歪みや遠近効果を修正することができます。長方形の角の 4 つの点から変換を計算するコードがどこかに見つかるはずです。
ほとんど忘れられていましたが、「高速」が本当に重要な場合は、単純なシアー変換のみを組み合わせて使用するようにシステムを簡素化することもできますが、これは大きく傾いた被写体の画質に悪影響を及ぼします。
他のヒント
実際には、これよりもはるかに単純なもので済むと思います。 マークのアプローチ.
歪んだイメージ上の 2D 座標を取得したら、それらの座標をテクスチャ座標として再利用します。
レンダラーで、各隅の頂点が、歪んだ 2D イメージ上の頂点にテクスチャ マッピングされた単純な長方形を描画します (正規化されるか、レンダリング システムのテクスチャ座標平面に変換されます)。
これで、ハードウェア (OpenGL などを使用) に頼って修正を行うことも、独自のテクスチャ マッパーを作成することもできます。
実際の 3D 情報を破棄しているため、アスペクト比を推測する必要があります。ただし、歪んだ長方形の最大幅と最大高さを取得するだけで問題を回避できます。