問題タブ [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.
opencv - OpenCV を使用してホモグラフィ行列を取得する方法 (2 つの画像をステッチする)
私はVisual Studio 2012でOpenCVに取り組んでいます.opencvでHomographyマトリックスをStitch 2 imagesに取得しようとしたので、実際にそれを行うための手順がわかりません:
opencv - ORB 特徴検出器
Open CV を使用して、マーカーの少ない拡張現実プロジェクトに取り組んでいます。現在、ORB を使用して機能を検出し、3D オブジェクトを拡張しています。これまでのところ、モデルはうまく拡張されていますが、拡張は期待どおりにはスムーズではありません。Augmented 3D モデルはぎくしゃくしています。
フレーム間のスムーズなカメラ姿勢推定をもたらす洗練の可能な方法は何ですか。
前もって感謝します。
c++ - findHomography によって返されるマスク パラメーターの値は何を表していますか?
findHomography
キーポイントのセットにリンクされた2つの画像を関連付けるホモグラフィを見つけるために、RANSACメソッドでOpenCVの機能を使用しています。
主な問題は、関数が出力するマスク行列の値をまだどこにも見つけることができなかったことです。
私が知っている唯一の情報は、0 の値は異常値であり、0 以外の値はインライアであるということです。しかし、インライア値とはどういう意味ですか? 誰か知っていますか?
私が呼び出すコードの一部findHomography
:
opencv - 基本行列、本質行列、ホモグラフィ行列の違いは何ですか?
異なる位置から撮影した 2 つの画像があります。2 番目のカメラは、1 番目のカメラに対して右、上、後方に配置されています。
したがって、カメラの深度が比較的異なるため、アフィン変換だけでなく、2 つのビューの間に透視変換があると思います。私は正しいですか?
2 つの画像の間にいくつかの対応する点があります。これらの対応点を使用して、1 番目の画像から 2 番目の画像への各ピクセルの変換を決定することを考えています。
関数findFundamentalMatとfindHomographyに混乱しています。どちらも 3x3 行列を返します。2つの違いは何ですか?
それらを使用するために必要な条件/前提条件はありますか (いつ使用するか)?
ポイントを 1 番目の画像から 2 番目の画像に変換するために使用するものはどれですか? 関数が返す 3x3 行列には、2 つの画像フレーム間の回転と移動が含まれていますか?
ウィキペディアから、基本行列は対応する画像点間の関係であると読みました。SO answer hereでは、対応する点を取得するには必須行列 E が必要であると言われています。しかし、E を計算するための内部カメラ マトリックスがありません。2 つの画像しかありません。
対応点を求めるにはどうすればよいですか?
opencv - OpenCV: さまざまな画像サイズにホモグラフィを使用する
OpenCV の findHomography を使用して画像のホモグラフィ行列を計算し、次に warpPerspective 関数を使用して画像をワープします。ここで、画像のスケーリングされたバージョンに同じホモグラフィ マトリックスを使用したいと考えています (スケーリングされたバージョンは同じ縦横比を持ち、画像はその中心を中心にスケーリングされます)。問題は、「opencv update homography matrix to fit on a image double the size」に似ており、正解がないようです。
既存のホモグラフィ行列に倍率を適用することは可能ですか?
よろしく
opencv - OpenCV 2.4.3 - トリミングされた画像の逆ホモグラフィを使用した warpPerspective
SURF を使用してシーン内の参照画像を見つける場合、シーン内で見つかったオブジェクトをトリミングし、warpPerspective と逆ホモグラフィ マトリックスを使用してそれを「まっすぐ」に戻したいと思います。
つまり、この SURF の結果があるとしましょう:
今、シーンで見つかったオブジェクトをトリミングしたいと思います:
逆ホモグラフィ行列を使用して、warpPerspective でトリミングされた画像のみを「まっすぐ」にします。私が目指している結果は、大まかにオブジェクトのみと、元のシーンからのいくつかの歪んだ残り物を含む画像を取得することです (トリミングは 100% オブジェクトだけではないため)。
見つかったオブジェクトをトリミングし、ホモグラフィ行列を見つけて逆にするのは簡単です。問題は、warpPerspective の結果を理解できないようです。結果の画像には、トリミングされた画像のごく一部しか含まれておらず、非常に大きなサイズになっているようです。
warpPerspective を調査しているときに、プロセスの性質上、結果の画像が非常に大きいことがわかりましたが、これを適切に行う方法について頭を悩ませているようには見えません。プロセスをよく理解していないようです。元の(トリミングされていない)画像をワープパースペクティブにして、「まっすぐにした」オブジェクトをトリミングする必要がありますか?
何かアドバイス?
image-processing - ホモグラフィから極端な歪みを切り取る
任意のカメラ アングルから撮影したチェッカーボードの写真があります。チェッカーボード グリッドを形成する 2 組の線に対応する 2 つの消失点を見つけます。これら 2 つの消失点から、チェッカーボード平面から画像平面へのホモグラフィを計算します。
次に、逆ホモグラフィを適用して、チェッカーボードを上面から再レンダリングします。ただし、特定の画像では、再レンダリングされたトップ ビューが非常に大きくなります。つまり、カメラの角度により、逆ホモグラフィは画像の特定の部分 (つまり、消失点の 1 つに非常に近い画像の領域) を非常に大きく引き伸ばします。
これは不必要に大量のメモリを占有し、高度に拡張される領域のほとんどは私が必要としないものです。そのため、逆ホモグラフィを適用するときは、画像の非常に引き伸ばされる領域のレンダリングを避けたいと考えています。これを行う良い方法は何ですか?
(私はMATLABでコーディングしています)
opencv - 射影行列を求める
最初に、私の悪い英語をお詫びしたいと思います。
私は OpenCV とバーチャル リアリティの分野ではまったくの初心者です。画像処理の理論を調べようとしましたが、いくつかの点が欠けています。射影行列は 3 次元の点を 2 次元に変換するための行列であることを学びました。私は正しいですか?エッセンシャル マトリックスは 2 台のカメラ間の回転に関する情報を提供し、基本マトリックスは 1 つの画像のピクセルと他の画像のピクセルとの関係に関する情報を提供します。ホモグラフィ行列は、2 つの画像のピクセルの座標を関連付けます (正しいですか?)。基本行列とホモグラフィ行列の違いは何ですか?
射影行列を取得するには、これらすべての行列が必要ですか? 私はこれらが初めてなので、できれば簡単に説明してください。ご協力いただきありがとうございます。