問題タブ [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 投票する
0 に答える
707 参照

c# - C#経由でディスプレイの色温度を取得するには?


C#を介してディスプレイの色温度を取得または設定する方法を知っている人はいますか?
Microsoft Dev Center で Monitor Configuration Functions を見つけましたが、C++ のようです。
また、これらの関数のサンプル コードはありません。
これらの関数を C# で呼び出す方法を教えてもらえますか?

ありがとう
レックス

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

matrix - ホモグラフィから固有行列を「正しく」再構築する方法

私は次の論文を一生懸命読んだ。

Z.チャン。未知の方向から平面を見ることによる柔軟なカメラのキャリブレーション。コンピュータ ビジョンに関する国際会議 (ICCV'99)、ギリシャ、コルフ、666 ~ 673 ページ、1999 年 9 月。

この論文は,画像座標と世界座標におけるチェス盤間のホモグラフィ行列を最初に推定する方法を提案した。次に、内部および外部パラメータは、内部の方程式に従って取得できます。

しかし、「主点」の位置、u0とv0である非常に奇妙なものを見つけました。理論的には、それらは画像内にあるはずです。

この図で、チェス盤を、単位がピクセルのイメージ (黒) 座標と単位が mm のワールド (青) 座標で定義するとします。主点はこの画像のほぼ中央に位置しています。これは妥当です! ただし、チェス盤を別の画像座標、赤い座標で定義すると、主点が画像の外にあり、そのような結果を解釈する方法がわかりません。理論的には、異なる座標でチェス盤を定義することは同じです。

このチェス盤の 2 つの座標間の関係を記述するホモグラフィは、私の matlab コードでは完全に正しいものです。

問題は、異なる画像座標で同じ結果を達成できなかった理由です。たとえば、黒の画像座標を使用する場合、主点は画像の中心にある必要があります。赤の画像座標を使用すると、主点も画像の中心にあるはずです。

異なる座標でチェス盤を記述すると、異なるホモグラフィ行列になることはわかっていますが、これは、異なる/対応する座標 (黒または赤) で定義された同じ「主点」を説明する必要があります。

誰かがこの分野に精通している場合は、私を助けてください。私が何を意味するのかを理解し、将来私のように混乱する可能性のある人々を助けるために、私の matlab コードをアップロードすることもできます!

アレックス

PS、固有行列を推定するには、論文によると、少なくとも 2 つの画像が必要です。

図1

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

matrix - カメラのキャリブレーション: 射影行列

私はしばらくの間 3D スキャナーに取り組んできましたが、続行する前に解決したい射影行列についてまだいくつか質問があります。

この行列がカメラ座標系とワールド座標系の関係を表しているという事実を理解しています。それでも、すべてのキャリブレーション ソフトウェア パッケージがこのマトリックスを提供する理由がわかりません。ソフトウェアは空間でランダムなワールド座標系を選択し、後で行列を計算しますか?

自分で世界座標系を選択する方がずっと簡単だと思っていました (可能であれば)。私の計画は、オブジェクトが静止した表面上に静止し、カメラとレーザーがオブジェクトの周りを円運動で移動するスキャナーを作成することです。この方法で射影行列を作成できれば、ワールド座標系が静的プラットフォームの中央に適切に配置されます。

よくわからない場合はお知らせください。画像を追加します。

うまくいけば、誰かが私のために少し物事を片付けることができるので、私はいくつかの進歩を遂げることができます:)。

宜しくお願い致します。

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

opencv - 異なるカメラ (RGB および赤外線) 用の stereoCalibrate

2 つのカメラのキャリブレーションに問題があります。1 つ目は RGB で、2 つ目は赤外線です。解像度が異なります(画像のサイズを変更してトリミングしました)、焦点距離など...

例:

RGB 1920x1080RGB 1920x1080

赤外線 512x424赤外線 512x424

それらを互いに調整する方法は?stereoCalibrate でどのパラメータを使用する必要がありますか? デフォルトのサンプル stereo_calib.cpp は非常に大きなエラーを生成します。このようなもの: https://www.dropbox.com/s/x57rrzp1ejm3cac/%D0%A1%D0%BA%D1%80%D0%B8%D0%BD%D1%88%D0%BE%D1%82 %202014-04-05%2012.54.17.png

RMS エラー = 4.1026 で完了

平均再投影誤差 = 10.2601

アップデート

私は、calibration.cpp の例を使用して、各カメラのキャリブレーション パラメーターを個別に生成しました。RGB カメラの場合、最初に画像のサイズを変更してトリミングし、解像度が IR カメラ (512x424) に一致するようにしてから、調整します。RGB カメラの場合は camera.yml を取得し、IR カメラの場合は camera_ir.yml を取得します。次に、変更した stereo_calib.cpp の例を使用してステレオ キャリブレーションを試みます。stereoCalibrate を呼び出す前に、ファイルからカメラの camera_matrix パラメーターと歪曲係数パラメーターを読み取り、これらのマトリックスを stereoCalibrate に入れます。

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

opencv - ピンホールカメラモデルの座標系

最近、ピンホールカメラのモデルを勉強していたのですが、OpenCV で提供されているモデルと「コンピュータービジョンにおける複数ビューの幾何学」の教科書に戸惑いました。

以下の写真は、像面とカメラフレームの位置を入れ替えた単純化したモデルだと思います。説明と理解を深めるために、主点 (u0,v0) を考慮すると、2 つのフレーム間の関係はx=f(X/Z)+u0と になりy=f(Y/Z)+v0ます。

ここに画像の説明を入力

しかし、通常、画像座標は次のように第 4 象限座標の形式になっているため、非常に混乱しました。

次の定義の (x,y) を、実際には説得力のない上記の「同等の」ピンホール モデルに直接置き換えることはできますか?

ここに画像の説明を入力

また、オブジェクトがカメラ座標の領域 (+X,+Y) 象限にある場合 (もちろん、Z>f)、同等のモデルでは、画像座標の右半平面に表示されるはずです。しかし、通常のカメラで撮影した画像では、そのような物体は左半分に位置するはずです。したがって、私にとってこのモデルは合理的ではありません。

最後に、元のモデルに基づいて次のように導出しようとしました。

ここに画像の説明を入力

結果はx1=-f(X/Z)y1=-f(Y/Z)です。

次に、(x2,y2)座標とカメラ座標の関係を調べてみました。結果はx2=-f(X/Z)+u0y2=-f(Y/Z)+v0です。

(x3,y3) 座標とカメラ座標の間で、結果はx3=-f(X/Z)+u0と になりy3=f(Y/Z)+v0ます。

どの座標系を試しても、一部の CV 教科書で提供されているx=f(X/Z)+u0との形式になっているものはありません。y=f(Y/Z)+v0

さらに、(x2,y2) 座標または (x3,y3) 座標の投影結果も、同じ理由で妥当ではありません: カメラ座標の (+X,+Y,+Z) 領域にあるオブジェクトカメラで撮影した画像の左半分の平面に「表示」する必要があります。

誰かが私が誤解したことを指摘できますか?

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

kinect - Kinect はどのように深度を計算しますか?

ここで少し混乱しています。

Kinect は深度をどのように計算しますか : 私が理解しているのは、

  • IR プロジェクターは、IR カメラによって反射されて読み取られるパターンを放ちます。
  • これで、IR カメラは特定の深さのパターンを認識します。入力パターンと既知のパターンの違いを利用して、三角形分割を使用して既知の深さを計算します (類似した三角形の比例関係を使用)。

質問 1 : IR プロジェクターと IR カメラの間の距離は考慮されますか? それらは近すぎて考慮できないため、そうではないと思います。

質問 2 : パターンから直接深さを取得しています。disparity map深度を計算するためにいつ使用しますか?

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

c++ - 画像の黒い領域が多すぎる OpenCV 修正 C++

OpenCV を使用して、ステレオ システムの調整と調整を行っています。私は収束の目を持つステレオ カメラを持っています。実際には、これらの関数を次の順序で実行しています。

次に、取得したい画像の数についてこれをループします

このブロックの後、これを 2 つと呼びます。

その後:

最後に:

これは基本的に私が行っていることですが、画像に非常に大きな黒い領域があるため、結果は非常に悪いです. 以下に例を示します。

OpenCVから離れた

そして、これは私が取得しなければならない修正画像です。これは、カメラから直接修正されたものです。

カメラから左

ご覧のとおり、画像は右側で翻訳されてカットされているように見えます。右側は同じですが、左側で翻訳され、結果はほぼ同じです。

では、どうすれば最後の結果と同様のより良い結果を得ることができますか? 問題はどこだ?追加のデータとして、rms が約 0.4 とあまり良くないことに気付きました。再投影エラーは約 0.2 です。もう少し低くする必要があることはわかっていますが、パターン、照明、照明を変えて何度も試しました。など、キャリブレーション中ですが、私は常に同じ結果、または最悪の場合さえも取ります。