問題タブ [perspectivecamera]

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.

0 投票する
1 に答える
1973 参照

python - パースペクティブホモグラフィの問題

OpenCVとPythonでパースペクティブワープを使用して画像を修正しようとしています。ワープが必要な平面を基準にしたカメラの向き(X、Y、Zの角度)を知っています。既知の点に基づいてホモグラフィ行列を計算するのが最も簡単な方法であることを私は知っていますが、その情報が利用できないときに同じことをしようとしています。私が使用しているコードは、回転行列を作成してから、並進行列と固有行列を組み合わせます。現在、コードはz軸への操作でのみ機能します。x軸とy軸を操作すると、画像に奇妙な歪みが生じます。私は次の投稿の下部にある答えに基づいてコードを作成しています:既知のカメラの向きに基づくOpenCVでのパースペクティブワーピング

添付されているのは、元の画像と標準的なホモグラフィ法によるワープ画像です。

元の画像パースペクティブワープ

0 投票する
1 に答える
535 参照

c# - C#でスーパークラスのプロパティにアクセスできません

私はC#を初めて使用しますが、実際にはPerspectiveCameraのサブクラスを作成しています

私の問題は、PerspectiveCameraのパブリックプロパティであるLookDirectionにアクセスできないことです。 http://msdn.microsoft.com/en-US/library/system.windows.media.media3d.perspectivecamera.aspx

LookDirectionがProjectionCameraから継承されているからですか!?理解できません...

前もって感謝します。

0 投票する
2 に答える
3146 参照

opencv - ある画像から別の画像へのピクセルの再投影

平面シーンの写真を撮るキャリブレーション済みのカメラが多数あります。簡単にするために、カメラが 3 台あるとします。これらのカメラは一般的な動きをしていますが、ほとんどが平行移動と若干の回転です。カメラの位置例

タスクは、それらを完全にステッチすることです。キャリブレーションされたカメラで撮影された一連の画像だけで、3D 座標についての知識はありません。

私がやること:

OpenCV で SURF/SIFT 実装を使用して特徴を検出し、各画像ペア (1->2、2->3、1->3) 間でfindHomographyを使用して初期ホモグラフィを取得します。これらのホモグラフィから、各カメラのポーズの初期推定を取得します(これと同様の手順)

次に、バンドル調整手法を使用して、一致する各ペアの再投影エラーを最小限に抑えます。最適化されたパラメーターは、3 つの並進値と 3 つの回転値 (ロドリゲスの回転式から取得) ですが、後で固有パラメーター (焦点、主点など) を追加できます。

画像 #2 が参照フレームであると仮定すると (他の 2 つの画像との一致が最も多いため)、その回転行列と平行移動行列はそれぞれ恒等行列とゼロ行列です。

イメージ #2​​ からイメージ #1 へのキーポイント (イメージ #2​​ とイメージ #1 の両方で表示) の再投影を (疑似コード) として計算します。

また

ここで、r__ は R1 行列の要素であり、両方の組み込み行列は次の形式です。

参照フレームの Z2 座標を 1 と仮定しています。

次の段階では、取得したカメラ行列 (K1、R1、T1、K3、R3、T3) を使用して、画像 #1 と #3 を画像 #2 の共通の座標系にワープします。

問題は、画像 #1->#2 からの逆再投影が次のようになるため、画像 #2 の参照フレームへの正しい再投影に必要な Z1 と Z3 についての知識がないことです。

ここで、R__ は inv(R1) 行列の要素です。

バンドル調整 (2d->2d) の再投影誤差を計算し、画像を共通の座標系にワープするより良い方法はありますか? OpenCV のステッチング モジュールには非常によく似たフレームワークがあることに気付きましたが、ここではそうではなく、純粋な回転運動を想定して動作します。

0 投票する
1 に答える
264 参照

opengl - タイル レンダリング glFrustum クリッピング プレーンの計算

私はタイル化されたレンダラーを機能させようとしていました (アイデアは、1 つの大きなビュー錐台をチャンクに分割して個別にレンダリングすることによってレンダリングすることです)。

私は、視野角を持つ標準的な透視投影を、glFrustum に渡すことができる左、右、上、および下のクリッピング プレーンに変換するコードを用意しました。

私はこれを適切に分解することに行き詰まりました。

0 投票する
2 に答える
1136 参照

directx - SlimDXカメラのセットアップ

私が間違っていることを教えてください:それは私のカメラクラスです

これが私のConstantbuffer構造体です。

そしてここで私は三角形を描き、カメラを設定しています:

何が悪いのかわかるなら教えてください!:)私はすでにこれを書くのに2日を費やしました。


2番目を試みます:

@paiden私は今fovを初期化しました(ありがとう:))、それでも効果はありません(今はfov = 1.5707963267f;)そして@Nico Schertler、ありがとうございます、私はそれを使用しました

しかし、まだ効果はありません...おそらく私の.fxファイルは間違っていますか?どのような目的でこれが必要ですか:


3番目のAttepmpt:@MHGameWorkどうもありがとうございましたが、まだ効果はありません;)誰かが5分の時間がある場合は、ソースコードを彼/彼女の電子メールにドロップするだけで、答えを公開します...私は推測しますそれは私のようないくつかの初心者に大いに役立ちます:)

今の問題-三角形が表示されましたが、カメラが動かない

0 投票する
2 に答える
768 参照

graphics - カメラの視線方向を特定の方向に合わせる

点群と複数の画像を使用しています。カメラの内部パラメータと外部パラメータを知っています。私が望むのは、カメラを回転させて(位置を変更せずに)特定の方向に表示する回転行列を見つけることです。より具体的には、平面を点群に合わせてから、カメラの視線方向を平面に垂直に表示するように調整します(位置を変更せずに)。

したがって、カメラの回転行列が与えられると、画像のホモグラフィ変換も見つかります。

誰かがこれで私を助けてください。

0 投票する
1 に答える
699 参照

android - 与えられたポイント間の距離を概算する方法は?

私はスクリーンポイント(x、y)と経度、緯度を持つ値P1、P2、P3、P4を持っています。それに加えて、カメラ (緯度、経度)、カメラの高さ (1.6m (一定))、カメラの向き (方位、ピッチ、ロール) があります。カメラの水平視野角と垂直視野角もあります:)

ここで、PX(緯度、経度) のディスプレイ上の推定位置を計算したいと思います (表示されている場合)。 次の問題

指定された PX(lat,long) の P(?,?) を取得するにはどうすればよいですか? (グラフィックの紫色の点) カメラの角度を知っていて、4 つの頂点をすべて持っているので、これは可能だと思われます。しかし、私はこの問題を解決する方法がわかりません。

この 4 つの頂点に基づいて、(lat,long) を (screenX, screenY) に変換できる関数が必要です。

(screenX, screenY) を (lat,long) に変換できる式がありますが、この式を逆にすることはできません。したがって、頂点以外の点が必要な場合は、それらを計算できます (ただし、画面内のすべてのピクセルに対してこの式を単純に使用することはできません... 100 ミリ秒ごとに 100 万回のメソッド呼び出しが必要になります...)

0 投票する
3 に答える
16338 参照

opencv - 基本行列、本質行列、ホモグラフィ行列の違いは何ですか?

異なる位置から撮影した 2 つの画像があります。2 番目のカメラは、1 番目のカメラに対して右、上、後方に配置されています。

したがって、カメラの深度が比較的異なるため、アフィン変換だけでなく、2 つのビューの間に透視変換があると思います。私は正しいですか?

2 つの画像の間にいくつかの対応する点があります。これらの対応点を使用して、1 番目の画像から 2 番目の画像への各ピクセルの変換を決定することを考えています。

関数findFundamentalMatfindHomographyに混乱しています。どちらも 3x3 行列を返します。2つの違いは何ですか?

それらを使用するために必要な条件/前提条件はありますか (いつ使用するか)?

ポイントを 1 番目の画像から 2 番目の画像に変換するために使用するものはどれですか? 関数が返す 3x3 行列には、2 つの画像フレーム間の回転と移動が含まれていますか?

ウィキペディアから、基本行列は対応する画像点間の関係であると読みました。SO answer hereでは、対応する点を取得するには必須行列 E が必要であると言われています。しかし、E を計算するための内部カメラ マトリックスがありません。2 つの画像しかありません。

対応点を求めるにはどうすればよいですか?

0 投票する
1 に答える
25749 参照

computer-vision - カメラの内部行列の焦点距離が 2 つの次元を持つのはなぜですか?

ピンホール カメラ モデルでは、主点とカメラの中心の間にある焦点距離は 1 つだけです。

ただし、カメラの固有パラメーターを計算した後、行列には​​以下が含まれます。

これは、イメージセンサーのピクセルが x と y で正方形ではないためですか?

ありがとうございました。