問題タブ [camera-calibration]

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 投票する
4 に答える
3780 参照

math - 自動カメラキャリブレーション

ウィキペディアによると、カメラの切除は、特定の写真またはビデオを生成したカメラの真のパラメーターを見つけるプロセスです。カメラの切除は、ジオメトリック カメラ キャリブレーションとも呼ばれます。

現在、カメラのキャリブレーションにMatlab用のカメラキャリブレーションツールボックスを使用しています。ツールボックスは、焦点距離、主点、スキュー、歪みなどのキャリブレーション パラメーターを返します。ただし、この方法の問題点は、チェッカーボードのような特別なキャリブレーション オブジェクトを使用してカメラをキャリブレーションする際に追加の手順が必要になることです。さらに、カメラの 1 つの焦点に対してのみ機能します。

手動でキャリブレーションせずにキャリブレーション パラメータを取得するにはどうすればよいですか? たとえば、Microsoft のPhotosynthは、その画像に対してどのようにカメラ キャリブレーションを実行するのでしょうか?

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

math - 競合する OpenCV カメラのキャリブレーション式が 3 つあるのはなぜですか?

カメラのキャリブレーションに使用されるOpenCV のさまざまな座標のパラメーター化に問題があります。問題は、画像の歪みの式に関する 3 つの異なる情報源が、関係するパラメーターと式の 3 つの異なる説明を明らかに提供していることです。

(1) 著書 「Learning OpenCV…」で、Bradski と Kaehler はレンズの歪みについて次のように書いています (page 376):

ここで、r = sqrt( x^2 + y^2 ) です。

仮定すると、(x, y) は、座標 (X, Y, Z) を持つワールド ポイント オブジェクトに対応する、補正されていないキャプチャ イメージ内のピクセルの座標であり、カメラ フレームが参照されます。

ここで、fx、fy、cx、および cy は、カメラの内部パラメーターです。したがって、キャプチャされた画像から (x, y) を取得すると、上記の最初の 2 つの補正式を適用することで、キャプチャされた世界のシーンの歪みのない画像を生成するための目的の座標 ( xcorrected, ycorrected ) を取得できます。

でも...

(2) カメラのキャリブレーションと 3D 再構築セクションの下にある OpenCV 2.0 C リファレンス エントリを見ると、複雑さが生じます。比較を容易にするために、#1 と同様に、すべてのワールド ポイント (X、Y、Z) 座標がカメラの参照フレームに対して表されることから始めます。したがって、変換行列 [ R | t ] は関係ありません。

C リファレンスでは、次のように表現されています。

ここで、r' = sqrt( x'^2 + y'^2 )、そして最後に

ご覧のとおり、これらの式は #1 で示したものと同等ではありません。その結果、修正された座標の 2 つのセット ( xcorrected, ycorrected ) と ( u, v ) は同じではありません。なぜ矛盾?最初のセットは、そこにあるすべての x と y に物理的な意味を付けることができるため、より理にかなっているように思えますが、カメラの焦点が合っている場合、x' = X / Z および y' = Y / Z には物理的な意味がありません。 length は正確に 1 ではありません。さらに、(X、Y、Z) がわからないため、x' と y' を計算することはできません。

(3) 残念ながら、Intel の Open Source Computer Vision Library Reference Manual のセクション Lens Distortion (page 6-4) の記述を参照すると、事態はさらに暗くなります。

「( u, v ) を真のピクセル画像座標、つまり理想的な投影の座標とし、( u ̃, v ̃ ) を対応する実際の観測 (歪んだ) 画像座標とします。同様に、( x, y ) は理想的です (歪み-free) と ( x ̃, y ̃ ) は、実際の (歪んだ) 画像の物理座標です. 2 つの拡張項を考慮すると、次のようになります:

ここで、r = sqrt( x^2 + y^2 ) です。...

「u ̃ = cx + fx * u および v ̃ = cy + fy * v であるため、結果のシステムは次のように書き換えることができます。

後者の関係は、カメラからの画像の歪みを解消するために使用されます。」

さて、x ̃ と y ̃ を含む式は、この文書の上部にある xcorrected と ycorrected を含む 2 つの式と一致しているように見えます。ただし、与えられた説明によると、x ̃ と y ̃ は修正された座標を参照しません。座標 ( x ̃, y ̃ ) と ( u ̃, v ̃ ) の意味の違い、さらに言えば ( x, y ) と ( u, v ) のペアの違いがわかりません。それらの説明から、それらの唯一の違いは、( x ̃, y ̃ ) と ( x, y ) が「物理的」座標を参照し、( u ̃, v ̃ ) と ( u, v ) がそうではないことです。この違いは一体何なのでしょうか? それらはすべて物理座標ではありませんか?道に迷いました!

ご意見ありがとうございます。

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

c# - 3D ラインへのピクセル座標 (opencv)

cvInitUndistortMap & cvRemap (カメラのキャリブレーションを行った) を介して歪みのない画像を画面に表示し、ユーザーが画像内の機能をクリックします。したがって、特徴の (u,v) ピクセル座標があり、固有マトリックスと歪みマトリックスもあります。

私が探しているのは、ユーザーがクリックした機能が存在する必要があるカメラ/現実世界の座標の 3D 線の方程式です。カメラのイメージ プレーンとフィーチャの間の垂直距離は既にわかっているので、それを前述の式と組み合わせて、空間内のフィーチャの (X、Y、Z) 座標を得ることができます。

簡単に聞こえますが (逆固有行列か何か?)、ステップバイステップの説明がどこにも見つかりません。C++ または C# コードが望ましい。

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

opencv - カメラとプロジェクターのキャリブレーション

カメラのキャリブレーションについて質問があります。私は、カメラのキャリブレーションプロセスについて「OpenCVの学習」という本に示されているアプローチに従いました。ただし、キャリブレーションされた(歪みのない)画像は元の画像よりも劣ります。私のカメラがもうキャリブレーションを必要としない可能性はありますか?(キャリブレーションが何らかのドライバーまたはそのようなものによって行われることを意味します)?実際、元の画像はまったく歪んでいないようです。ディストーションだけでなく、私に何をすればいいのか教えてください。

すべての返信をありがとう

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

c++ - ジオメトリ -> OpenGL

OpleGL で正しい変換を取得できません。

point3D - P(X,Y,Z) と射影行列 M があります。これは K*(R|T) に等しく、

K - カメラ キャリブレーション マトリックス

代替テキスト

(R|T) - ポイント (オブジェクト) 座標系の変換 (R - 回転行列、T - 並進ベクトル)

その結果、点を p = M*P として射影しました。

私は P、K、R、T を知っていますが、OpenGl 用語で p を計算することはありません。

OpenCV 用語では、次のようになります (小さな抽象化コード)。

このロジックを OpenGl に変換するにはどうすればよいですか?

GL_PROJECTION を設定するにはどうすればよいですか? GL_MODELVIEW モードなどで何ができますか?

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

opencv - カメラのキャリブレーション

私は、すべての初心者であるOpenCVを使用しています。

シナリオがあり、壁に投影し、カメラを搭載した一種のロボットを構築しています。カメラで追跡されたブロブの座標の実際の値を取得できるように、画像を処理する方法を知りたかったのですか?

0 投票する
0 に答える
359 参照

camera - AVDで写真を撮る

AVD エミュレーターでアプリをテストしています。私のアプリのステップの 1 つは写真を撮ることです。そこに着くと、最初に正しい画面(写真を撮るボタンとキャンセルボタンがある画面)が表示されますが、数秒後、写真を撮る前に、次のエラーメッセージが表示されます「アプリケーションカメラ(プロセスcom .android.camera) が予期せず停止しました。もう一度お試しください。」

AVD を使用しているため、これは予期された動作ですか?

FWIW、すべてのハードウェア オプションを AVD に追加しました。コードはこのリンクから変更されましたhttp://github.com/commonsguy/cw-advandroid/tree/master/Camera/Picture

どんな助けでも大歓迎です。

rh4games

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

windows - Windowsフォームのカメラアプリケーション

基本的に、カスタムカメラ用のc++で他のWebカメラの制御プログラムと同じようにWindowsフォームプログラムを作成したいと思います。このカメラには、写真を撮るなどのAPIがあります。
これまでカメラアプリケーションを実行したことがないので、少し混乱しています。他のWebカメラソフトウェアのような「プレビュー」機能の場合、カメラから.JPEG画像をポーリングし、それを.1秒ごとにWindowsフォーム画面に表示するようなものですか?そんなに簡単ですか?ウェブカメラソフトウェアを書くための基本的なアイデアを知っている人はいますか?

ありがとう

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

language-agnostic - カメラ キャリブレーション マトリックスの方法

このツールボックスを使用て、カメラのキャリブレーションを行っていました。

ただし、ツールボックスの出力結果は行列形式であり、初心者である私は数学的なことを本当に理解していません。

マトリックスは次の形式です。

代替テキスト

ここで、R は回転行列、T は並進ベクトルです。

そして、これらはツールボックスから得た結果です。ピクセル単位で値を出力します。

このデータを使用して、カメラの回転量とキャリブレーション オブジェクトからの距離を知ることができますか?

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

matlab - カメラのセルフキャリブレーション用の Absolute Quadric のデュアル

Dual of Absolute Quadric (DAQ)

このグループの誰かが、カメラのキャリブレーションのために絶対二次元の二重の正確な推定に取り組んでいるかどうか疑問に思っていますか? Matlab のコードはありますか?