問題タブ [homography]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 4 点変換イメージ
4 つのコーナー ポイントをある場所から別の場所に移動して、ビットマップ イメージを変換する必要があります。
Windows、できれば C# / VB.NETで実行できるコードなら何でも受け入れられます。Java Advanced Imaging API は有望に思えます。
このような効果を得ることができるスクリーンショット操作システムに必要です。
(出典:wholetomato.com)
projective-geometry - 射影行列 + 世界平面 → 画像平面から世界平面へのホモグラフィ
私はこれでワイヤーが交差していると思います。それは非常に簡単なはずです。
世界座標から画像座標 (4D 同次から 3D 同次) への射影行列があるため、画像座標から世界の「光線」への逆射影行列もあります。
画像のポイントをワールド内の平面に投影したいと思います(もちろん、4D同種ベクトルとして与えられます)。必要なホモグラフィは一意に識別される必要がありますが、計算方法がわかりません。
もちろん、逆投影された光線を世界平面と交差させることもできますが、これを行うホモグラフィーが必要であることを知っているため、これは良い方法ではないようです。
前もって感謝します、ベン
image-processing - RANSACアルゴリズム
RANSAC アルゴリズムを使用して、特定の部分が重複している 2 つの画像の共通の特徴点を選択する方法を教えてください。問題は、機能ベースの画像スティッチングから発生しました。
opengl - 3x3 ホモグラフィを使用してキューブを特定の位置に拡張する方法
同じシーンの異なる画像間で 3x3 ホモグラフィを計算することにより、4 つの座標を追跡できます。これを行うと、これらの座標に他の 2D 画像を重ねることができます。OpenGLを使用する代わりに、このホモグラフィを使用して立方体をこの位置に拡張できるかどうか疑問に思っていますか? 3x3 マトリックスでは十分な情報が得られないと思いますが、カメラ キャリブレーション マトリックスがわかっている場合、これを行うためのモデル ビュー マトリックスを作成するのに十分な情報を得ることができますか?
あなたが与えることができるどんな助けにも感謝します.
opencv - Opencvは、バーズアイビュー用に仮想的にカメラを回転/移動します
私は、内因性データと外因性データを正確に知っているキャリブレーションされたカメラを持っています。また、カメラの高さもわかっています。次に、カメラを仮想的に回転させてバーズアイビューを取得し、3つの回転角度と平行移動を使用してホモグラフィマトリックスを作成できるようにします。
私は、ホモグラフィを介して2つのポイントを1つの画像から別の画像に変換できることを知っています。
x = K *(Rt * n / d)K ^ -1 * x '
ここで知りたいことがいくつかあります。画像の座標をccsで戻したい場合は、K^-1を掛ける必要があります。画像座標として(x'、y'、1)を使用しますか?
次に、ccを回転させるための回転行列を作成する必要があります...しかし、どの規則を使用する必要がありますか?また、WCSの設定方法をどのように知ることができますか?
次は法線と距離です。地面に横たわっている3つのポイントを取り、それらから法線を計算するのは正しいですか?距離はカメラの高さですか?
また、仮想的に見えるバードビューカメラの高さを、3メートルの高さから地面を見たいと言えるように変更する方法を知りたいです。翻訳およびホモグラフィマトリックスで単位「メートル」を使用するにはどうすればよいですか?
今のところ、誰かが私を啓発して助けてくれるといいですね。そして、「getperspective」で鳥のビューを生成することを提案しないでください。私はすでにそれを試しましたが、この方法は私には適していません。
セナ
computer-vision - 変形した正方形の平面オブジェクトのホモグラフィ計算
正方形の平面オブジェクト (一枚の紙) があるとします。あなたはそれの写真を撮ります。一般的に言えば、変形して見えます。イメージを処理し、平面オブジェクトの 4 つのコーナーを計算するとします。4 つの点があれば、ホモグラフィを計算できます。
しかしここで、オブジェクトが何らかの変形を受けるとします。変形の性質について言えることは、次のとおりです。
- それは「滑らか」です(オブジェクトの表面は鋭角を形成しません)
- オブジェクトの表面は、変形後も常に完全に見えるようになります。
例: 円筒形のオブジェクトの表面に正方形の紙を貼り付けます。
問題は、平面 (変形) オブジェクトの角の 4 つの座標 (ピクセル単位)のみが与えられた場合、正しいホモグラフィを計算できるかどうかです。つまり、ホモグラフィを計算する前に、変形の影響を「除去」できますか?
「おおよその」(read working ;) メソッドでさえ、本当に役に立ちます。ありがとう。
Ps。先験的に、平面オブジェクトの内容がわからないことを付け加えたいと思います。実際、私が書いているアルゴリズムは、ホモグラフィを計算し、オブジェクトのワープを解除し、その内容をチェックします。これは 2D バーコードなので、数字の id/crc のペアがあります。オブジェクトから抽出された crc が ID で計算された crc と等しい場合、それは有効なバーコードです。
opengl - 四角形の検出と姿勢の推定
OpenCV を使用して四角形のポーズを推定するにはどうすればよいですか? フレーム上の四角形を検出するだけで済みます..画面上のすべての四角形を検出する必要はありません
vb.net - ホモグラフィから変換行列と回転行列を抽出しますか?
カメラからの 2 つの連続した画像があり、カメラの姿勢の変化を推定したい:
オプティカル フローを計算します。
右に見えますが、カメラは左と上に移動しました: 次に、カメラがどれだけ移動して回転したかを調べたいと思います。カメラの位置とカメラが見ているものを宣言すると、次のようになります。
新しい位置とルックアットを計算するにはどうすればよいですか?
私がこれをすべて間違っている場合、またはより良い方法がある場合は、どんな提案も大歓迎です、ありがとう!
kinect - 2 つの Kinect 深度マップから射影ホモグラフィを抽出する
Kinect 深度マップから取得した 2 つの連続した 3D ポイント クラウド 1 および 2 (クラウド全体ではなく、OpenCV の GoodFeaturesToMatch を使用してクラウドから選択された 100 ポイントなど) を指定して、1 から 2 までのカメラのホモグラフィを計算したいと考えています。ここ (スライド 12)、ここ (スライド 30)、そして古典的な論文のように見えるのはここです。私の問題は、私は有能なプログラマーですが、これらのメソッドの 1 つをコードに変換するための数学や三角関数のスキルがないことです。これは簡単な問題ではないため、次の問題を解決するコードに大きな報奨金を提供します。
カメラは原点にあり、Z 方向を見て、不規則な五面体 [A、B、C、D、E、F] にあります。
カメラは左に -90mm (X)、上に +60mm (Y)、前方に +50mm (Z) 移動し、下に 5°、右に 10°、反時計回りに -3° 回転します。
カメラが元の位置に戻るようにシーン全体を回転させると、2 の頂点の位置を特定できます。
これを準備するために使用される 3DS Max ファイルは、 max 1、max 2およびmax 3です。
前後の頂点の位置、組み込み関数などは次のとおりです。
camera2 の頂点は 100% 正確ではないことに注意してください。意図的なノイズが少し含まれています。
私が必要とするコードは、必要に応じて EMGUCV と OpenCV を使用して、VB.Net または C# に容易に変換できる必要があり、2 セットの頂点と組み込み関数を取得し、次の出力を生成します。
同次座標のホモグラフィが 3X3 なのか 3X4 なのかはわかりませんが、頂点を 1 から 2 に変換できるはずです。
また、a1、a2 などの値もわかりません。それはあなたが見つけなければならないものです>;-)
500 報奨金の提供は、私がこの非常によく似た質問に提供した報奨金を「置き換え」ます。この質問を指すコメントを追加しました。
EDIT2: この質問の仕方が誤解を招くものかどうか疑問に思っています。問題は、カメラ ジオメトリよりもポイント クラウド フィッティングにあるようです (A を B に変換および回転する方法を知っている場合は、カメラの変換とその逆を知っています)。もしそうなら、おそらく解はカブシュのアルゴリズムまたは同様のもので得られる可能性があります
image-processing - ホモグラフィを使用した高速パッチ抽出
Ir と I の 2 つの異なる画像に描かれた平面を関連付けるホモグラフィ H があるとします。Ir は参照画像で、平面は画像平面に平行です (実質的に画像全体を占めます)。I はランタイム イメージ (任意の視点で撮影された平面の写真) です。H を次のようにします。
p = Hp'、ここで p は Ir の点で、p' は I の対応する点です。
画像 Ir に対して、x1 < x2 の 2 つの点 p1=(x1,y) と p2=(x2,y) があるとします。これらは同じ行に属していることに注意してください (共通の y)。H'=H^(-1)とする。H' を使用すると、(x1,y)、(x1+1,y)、...、(x2,y) の点のうち、I 内の対応する点を計算できます。
問題は、これらすべてのポイントを計算するために行列とベクトルの乗算を回避する方法はありますか? 私にとって最も簡単な方法は、ホモグラフィを使用して p1 と p2 の対応する点を計算することです (それらを p1' と p2' と呼びます)。その他 (つまり、(x1+1,y)、(x1+2,y)、...、(x2-1, y)) を取得するには、画像 I の p1' と p2' を線形補間します。
しかし、Ir と I の間には射影変換があるため、この方法はかなり不正確だと思います。
他のアイデアはありますか?この質問は、リアルタイム ソフトウェアで Ir の点 p の周りに (約 10x10 ピクセルの) 多数の (小さな) パッチを抽出する計算効率の高い方法が必要であるという事実に関連しています。
ありがとうございました。
Ps。たぶん、私が小さなパッチを使用しているという事実は、線形補間を使用することを適切なアプローチにするでしょうか?