問題タブ [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.
object - OpenCVでSURFを使用して検出されたオブジェクトの幅を定義する
私はロボットプロジェクトの下で働いています。opencvのSURFでオブジェクトを検出します。オブジェクト検出のネット上で多くのコードを見つけました。私が正確に見つけられなかったのは、画像内のオブジェクトの幅とそのコーナーの座標ですか?
そして、カムまでの物体の距離を定義することは可能ですか?
どんな助けでも大歓迎です
opencv - ホモグラフィを使用してOpenCVで画像を変換する方法は?
2つの画像(AとB)が互いにわずかに歪んでいて、それらの間に平行移動、回転、スケールの違いがあります(たとえば、これらの画像:)

Ssoooooooo必要なのは、写真Bに一種の変換を適用して、同じサイズ、向き、翻訳なしで両方の写真を作成するために存在する歪み/翻訳/回転を補正することです。
以下に示すように、私はすでにポイントを抽出し、ホモグラフィを見つけました。しかし、ホモグラフィを使用して変換する方法がわからないMat img_Bため、次のようになりMat img_Aます。何か案が?
乾杯、
c++ - 仮想モニターにホモグラフィを使用する
現在、ゲーム中のフィードバック用の仮想画面を作成する必要があるプロジェクトに取り組んでいます
私のプログラムは、追跡された位置に画像を描画します。私がやりたくないのは、この画像を追跡した4つのポイントに追従させて、スケーリングと回転を行うことです。
これに必要なのは、ホモグラフィを機能させることです。申し訳ありませんが、この質問をするのは、さまざまな記事がたくさんあることを知っているからです。かなり多くの記事を試してみましたが、うまくいきませんでした。私にはあまり意味がありません。私が今直面している問題は、方法がわからないということです。
画像のテクスチャまたはコンテンツを拡大縮小することはできますが、高さと幅の形式は同じままです。更新機能がまだないため、現在は回転しません。作成方法もわかりません。追跡されたポイントに応じて拡大縮小するように、画像自体を引き伸ばす必要があります。
この投稿で、それに応じて画像のフォーマットをスケーリングするための正しい方向に私を助けてくれることを願っています。それは私にとって大きなブレークスルーになるでしょう.
Windows 7 のコードブロック (C++) で openCV および ofxCV アドオンを使用して openframeworks を使用しています。
ofxCv のアドオンにはいくつかの機能がありますが、かなり混乱し"imitate();"ています。これも:
そしてその:"warpPerspective(origImg, warpImg, homography, CV_INTER_LINEAR);"
これらを正しく使用しているかどうか確信が持てず、これらに関する適切なドキュメントを見つけるのに苦労しましたが、それは私にとって理にかなっています。
私が疑問に思っているもう 1 つのことは、このタスクに関する行列の使用です。
すでにお気づきかもしれませんが、私は経験豊富なプログラマーではありません。正しい方向への助けをいただければ幸いです。
これはすべてのコードの貼り付けです: http://pastebin.com/MFfJqGZ1 最も興味深い部分、または私が個人的に何かが欠けている、または何か間違ったことをしたと思う場所は、199 行目から 223 行目の間です。ヘッダーファイルは次のとおりです。http://pastebin.com/XfQySAmh
どうもありがとうございました
よろしくジェスパー
opencv - ホモグラフィ、opencvからカメラの向きを見つける
すでにキャリブレーションされているカメラがある場合は、歪み係数とカメラマトリックスがすでにわかっています。そして、すべてが平面内にある一連のポイントがあり、それらのポイントの実際のメトリックとピクセル位置を知っているので、ホモグラフィを構築しました。
このホモグラフィ、カメラマトリックス、歪み係数を考えると、どのようにして最も簡単な方法でカメラのポーズを見つけることができますか?openCVを使用することで好ましい。
たとえば、「DecomposeProjectionMatrix()」関数を使用できますか?3x4の射影行列のみを受け入れますが、私は単純な3x3のホモグラフィを持っています
opengl - OpenGL 2D 描画が画面と平行ではない
私が描いている 2D 平面は画面と平行ではないと思います。
まず、ウィンドウのサイズ変更関数に次のように入力します。
これがopenglを初期化する方法です。
そして drawscene 関数:
ModelView と Projection の loadIdentity は既にロード済みなので、コードは問題ないと思います。私の描画の結果は、私の長方形が水平線に平行である場合、それは長方形であり、角度を変えると歪んだものになります。私が描いている平面が後方に傾いているようです。
opencv - JavaCV でホモグラフィ マトリックス (3x3) を使用して透視変換を実行するにはどうすればよいですか?
私はしばらくの間、ビリヤード台の画像を任意の角度から撮影し、コーナーの 4 つの座標ペア (x、y) を見つけ、画像を回転/ワープして、結果の画像にテーブルのみが含まれるようにしようとしています。鳥瞰図。このタスクを達成するために JavaCV を使用しています。これまでのところ、以下に示すようにテーブルの 4 つのコーナーを正常に計算するコードを作成しました (4 つのコーナーに半径 25 の赤い cvCircles をコーディングしました)。

4 つのコーナーを見つけた後:
コーナー 1 (右下) X: 3234 Y: 1858
コーナー 2 (左下) X: 0 Y: 1801
コーナー 3 (右上) X: 2722 Y: 1069
コーナー 4 (左上) X: 523年:1030年
これを達成するために、cvFindHomography を使用してから cvWarpPerspectve を使用しようとしました。私のコードは以下にあります:
私が取得している 3x3 ホモグラフィ マトリックスは次
のとおり
です
。
**残念ながら、結果は何も含まれていない真っ黒な画像になります。私はこれに間違ってアプローチしていますか? アドバイス、コード、疑似コードなどは大歓迎です!
読んでいただきありがとうございます。**
c++ - Levenberg Marquardt アルゴリズムを使用したホモグラフィ計算
OpenCV の findHomography() 関数は、2 つの平面間の透視変換を検出します。計算されたホモグラフィ マトリックスは、再投影誤差をさらに減らすために、Levenberg-Marquardt メソッドを使用して (堅牢なメソッドの場合にのみインライアを使用して) さらに洗練されます。アルゴリズムの背後にある数学を理解するのに役立つので、誤差関数を最小化するために必要なレーベンバーグ マルカート アルゴリズムへの C/C++ コードへのリンクを誰でも提供できますか。(ネットのどこにでも、ライブラリまたは特定のコードのみがアップロードされていますが、アルゴリズムの詳細なコードはアップロードされていません)。
python - OpenCVのホモグラフィを知ることにより、ビデオからオブジェクトの高さを計算する
OpenCVとPythonを使用して開発している追跡アプリケーションで検出されたオブジェクトの高さを測定しようとしています。ホモグラフィマトリックスを計算したので、現実世界のすべてのオブジェクトの位置と、ビデオフレーム上の見かけの高さがわかります。私が知らないのは、カメラの実際の位置です。カメラのポーズマトリックスはホモグラフィから計算できることを確認しましたが、それをどうすればよいかわかりません。
ビデオは頭の高さから録画され、オブジェクトはほとんどが人です。ホモグラフィは、カメラのピクセルを地面のレベルに変換します。
オブジェクトの幅は、左端と右端の座標を実世界の座標に変換し、それらの間の距離を測定することで測定できます。高さはどのように計算できますか?
computer-vision - ホモグラフィ推定->結果はアフィン行列ですか?
平面マーカーからポーズ推定システムを開発しています(Matlabを使用)。そのために、Webカメラでキャプチャした画像から長方形を検出し、4つのコーナーポイントの座標を取得して、これらのコーナーポイント間のホモグラフィを同次座標で計算します。
ここで、最初の行は垂直座標で、2番目の行は水平座標です。
マーカーが正方形であることがわかっているので、これらのポイントと参照ポイントの間で、DLTを使用してホモグラフィを計算します(Webで見つけたいくつかの異なるホモグラフィ計算関数とMatlabのcp2tformを使用してすべて同じ結果が得られます) 、
[編集:どちらも反時計回りに並べ替えられているので、一致していることを確認します。]
次に、これらの参照点の再投影をプロットします
ホモグラフィがどの程度適合しているかを確認するために、Webカメラの画像に戻ります。
マーカーをz軸(=マーカーのノルムベクトル)を中心に回転させる(つまり、Webカメラの前に保持して手動で傾ける)だけなので、結果は問題ありません。再投影されたポイントは、以前に検出されたマーカーのコーナーポイントにほぼ正確に投影され、分解されたz軸角度は適切に計算されます。
ただし、マーカーをx軸および/またはy軸を中心に回転させると、再投影されたポイントがかなりずれます。それから私が気付いたのは、計算されたホモグラフィ行列Hはほとんどアフィンなものであるということです。例えばH =
(要素h31とh32は、マーカーをいくら傾けてもほぼゼロです)これは、射影ではなく、常にアフィン変換の結果のように見える再射影された点を調べることで確認できます。当然のことながら、x軸とy軸の分解された角度はほぼゼロ/ゼロに等しくなります。
明らかに、私がWebで見つけた関数は、ホモグラフィの計算をすべて間違っているわけではなく、Matlabのcp2tformも間違っているわけではありませんが、残念ながら、私の間違いが何であるかがわかりません。ピクセル座標の使い方に違いないのですが、ホモグラフィの説明をたくさん見て「ホモグラフィ推定結果アフィン」を検索しても結果が出なかったので、誰かが私を正しい方向に向けてくれたら嬉しいです。
ありがとう。
opencv - OpenCVCVfindHomographyアサーションエラー-カウンター=>4
現在、関心点検出器の評価ツールを完成させています。最後のステップで、紛らわしいエラーを見つけました。
およびは、一致したキーポイントの対応するポイントを格納しますsrcPoints。これまでのところ特別なことは何もありません-それはチュートリアルのようです。dstPointsvector<Points2f>
しかし、RANSACを使用しvector<Points2f>、範囲が[0、...、4]の場合、カウンターが4以上である必要があるよりもアサーションエラーが発生します。
質問1:アルゴリズムは、現在のモデルに属するものかどうかを記述し、コンセンサスを作成するために、少なくとも4つのポイントを必要としますか?
質問2:これに関するドキュメントはありますか?(私はドキュメントとチュートリアルを見ました。)
私はすでにこの質問を見たことがあることに注意してください。しかし、RANSACの振る舞いについて満足のいく答えはありません。それとも、ホモグラフィを見つけるためにこの方法には少なくとも4つのポイントが必要であることを受け入れる必要がありますか?
ご協力いただきありがとうございます。