問題タブ [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.
computer-vision - 画像修正のためのホモグラフィ
与えられたステレオ画像に対して画像修正を行うことができます。1 つの画像の場合、2 つの消失点と消失線を見つけることができます。この消失線を使用して、射影整流を行うことができます。しかし、アフィン整流にはどのような制約が必要ですか??
私は基本的に、世界の平行線が平行でx軸にも平行になるように、画像を正面図に修正したいと考えています。私は自分自身を明確にしていることを願っています..
また、画像の消失点 (x,y) を (1,0,0) に変換するホモグラフィは何ですか ???
前もって感謝します
opencv - Surf Detection で 3D Projection Matrix を見つける方法
私はOpenCVが初めてです。サーフ検出サンプルが機能しています。次に、検出された画像に 3D モデルを配置します。
3D 射影行列を見つけるにはどうすればよいですか?
c++ - サーフディテクタを使用したオブジェクトマッチング
SURF検出器を使用して画像から物体を検出しようとしています。そのために、私はOpenCVによって提供されるコードをデバッグしようとしました:
しかし、それは常に実行時エラーを示しています。
その理由を教えてください。
c++ - 正規化時に奇妙なホモグラフィ値を回避する
ホモグラフィに精通している人は、均一な座標を維持するために、マトリックス コンポーネントのいずれかで割って正規化する必要があることを知っているでしょう。ホモグラフィは 3x3 の行列で、通常は (3,3) の要素で除算して正規化されます。
問題は、その値が非常に小さく (たとえば 0.0000008)、ゼロであると想定される値 (0.0000007) を除算する場合に発生します。結果の値は、ゼロであると想定された場合、ほぼ 0.875 であり、結果の投影には意味がありません。
これを解決する一般的な方法を知りたいです。私は C++ と浮動小数点演算を使用しています。
opencv - OpenCVのfindHomographyからガベージホモグラフィを検出しますか?
findHomography
ポイントのリストを使用して、結果をに送信していwarpPerspective
ます。
問題は、結果が完全なゴミであり、結果の画像が奇妙な灰色の長方形で表される場合があることです。
findHomography
悪い結果が送信されたときにそれを検出するにはどうすればよいですか?
opencv - 2台の異なるカメラで撮影された同じシーンの2つの異なる画像から計算されたホモグラフィマトリックスを再利用できますか?
私はOpenCVを学ぼうとしています。ホモグラフィとエピポーラ幾何学について質問があります。
2つの異なる視点から2つのカメラで撮影された2つの静止画像の一致した特徴点を使用してcvFindHomography()関数を使用してホモグラフィを計算したとします。
ホモグラフィ行列を再利用して、camera2(左)によって撮影された画像からカメラ1(右)の対応するポイントを検出するのは間違っていますか(左の画像の2dの均質な特徴点は、右の画像の2dの対応する均質な特徴であることx' = H.x
がわかっているため)ポイントとホモグラフィマトリックス)カメラ1とカメラ2の2dポイントがホモグラフィマトリックスの計算に使用されなかった場合?x'
x
H
私が尋ねるのは、これら2つのカメラの計算されたホモグラフィ行列を再利用して、ホモグラフィ行列の計算に使用されていない画像に対応するポイントを見つけることができるかどうかです。
固定画像で決定されたときに使用する画像は重要ですか?または毎回計算する必要がありますか?
opencv - SURFを使用して検出されたオブジェクトの周りに長方形を描く
サーフディテクターを含む次のコードからオブジェクトを検出しようとしています。一致を描画したくありません。検出されたオブジェクトの周りに長方形を描画したいのですが、どういうわけか正しいホモグラフィを取得できません。誰か指摘してください私は間違っています。
opencv - ホモグラフィ行列が受け入れられるかどうかをどうやって見分けることができますか?
OpenCVのfindHomography
関数を使用して、異なる画像から2セットのポイント間のホモグラフィを推定する場合、RANSACまたはLMEDSを使用している場合でも、入力ポイント内の外れ値が原因でホモグラフィが不良になることがあります。
結果の3x3ホモグラフィ行列が許容できるかどうかをどのように判断できますか?
StackoverflowとGoogleでこれに対する答えを探しましたが、見つかりませんでした。
私はこの記事を見つけましたが、それは私には少し不可解です:
image - 画像のスティッチングに関するいくつかの問題 - ホモグラフィ?
Visual Studio 2010 で OpenCV 2.3.1 を使用してイメージ スティッチングのプロジェクトに取り組んでいます。
私は現在2つの問題を抱えています。
(私の評判は10を超えていないので、この投稿には2つのハイパーリンクしか投稿できません。コメント領域に別の2つを投稿します)
次のリンクで説明されている手順に従いました opencvで2つの画像をステッチする
- 両方の画像で SURF 特徴を見つけて一致させる
- RANSAC による外れ値の除去
- ホモグラフィの計算
- ターゲット画像を参照画像にワープする
下の写真は私が現在持っている結果です:
2 つの画像は、カメラを使用して同じ位置で別の方向から撮影されています(三脚を使用しました)。
それから私は別のテストを試みました。今回も同じカメラで2枚撮影。しかし、カメラを元の位置から少し動かしてから、2 枚目の写真を撮りました。結果は、次のようにかなりひどいものです。
問題 1:**2 台のカメラが異なる位置にある場合、**標準のパノラマ スティッチング技術 (ホモグラフィまたはカメラ回転モデルに基づく) が機能しないということですか?
将来、FOVを広げるために、異なる位置にある2台のカメラにスティッチングアルゴリズムを実装したいので、異なる位置で撮影した画像をスティッチングしようとしました:(コメントに写真を投稿します。 plz チェックFOVを広げます )
しかし今、私は間違った方向に進んでいるようです:(。
アルゴリズムの実行中、特徴の検出と照合にほとんどの時間がかかることがわかりました。
問題 2: 2 つの画像の特定の部分 (オーバーラップ領域) の特徴を計算するだけで、ホモグラフィを使用して変換を実行できますか? つまり、画像全体を計算するわけではありません。
このように考えるのは、2 枚の画像の重なり部分の量を指定すれば、画像全体の特徴量を計算する必要がないと思うからです。オーバーラップ領域の特徴を計算して一致させることができれば、速度が大幅に向上するはずです。
以下に示す最初のコードは、画像全体の特徴を計算する元のコードです。
アルゴリズム全体の実行に必要な時間を短縮するために、次のことを行いました。
上記のコードを使用すると、計算時間は大幅に短縮されますが、悪い結果が得られます: (コメントに写真を投稿します。悪い結果を確認してください)
現在立ち往生しており、次に何をすべきかわかりません。本当に希望し、助けを感謝します。ありがとう。
c++ - findHomography、getPerspectiveTransform、getAffineTransform
この質問は、OpenCV 関数に関するものですfindHomography
。getPerspectiveTransform
&getAffineTransform
findHomography
とはどう違いgetPerspectiveTransform
ますか?ドキュメントからの私の理解は、4 つ以上の対応関係 (おそらく最小二乗法のようなものを使用して) を提供した場合でも、4 つの対応関係 (getPerspectiveTransform
ホモグラフィ/遠近法変換を計算するために必要な最小値) を使用して変換を計算することです?findHomography
)。これは正しいです?(その場合、OpenCV がまだ getPerspectiveTransform をサポートし続けている唯一の理由はレガシーであるべきですか?)findHomography
私の次の懸念は、アフィン変換の計算に相当するものがあるかどうかを知りたいということです? つまり、最小二乗法または同等の堅牢な方法を使用して計算およびアフィン変換を行う関数です。ドキュメントによると、getAffineTransform
対応は 3 つしか取りません (これは、アフィン変換を計算するために必要な最小値です)。
一番、