問題タブ [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.
c# - C#経由でディスプレイの色温度を取得するには?
C#を介してディスプレイの色温度を取得または設定する方法を知っている人はいますか?
Microsoft Dev Center で Monitor Configuration Functions を見つけましたが、C++ のようです。
また、これらの関数のサンプル コードはありません。
これらの関数を C# で呼び出す方法を教えてもらえますか?
ありがとう
レックス
matrix - ホモグラフィから固有行列を「正しく」再構築する方法
私は次の論文を一生懸命読んだ。
Z.チャン。未知の方向から平面を見ることによる柔軟なカメラのキャリブレーション。コンピュータ ビジョンに関する国際会議 (ICCV'99)、ギリシャ、コルフ、666 ~ 673 ページ、1999 年 9 月。
この論文は,画像座標と世界座標におけるチェス盤間のホモグラフィ行列を最初に推定する方法を提案した。次に、内部および外部パラメータは、内部の方程式に従って取得できます。
しかし、「主点」の位置、u0とv0である非常に奇妙なものを見つけました。理論的には、それらは画像内にあるはずです。
この図で、チェス盤を、単位がピクセルのイメージ (黒) 座標と単位が mm のワールド (青) 座標で定義するとします。主点はこの画像のほぼ中央に位置しています。これは妥当です! ただし、チェス盤を別の画像座標、赤い座標で定義すると、主点が画像の外にあり、そのような結果を解釈する方法がわかりません。理論的には、異なる座標でチェス盤を定義することは同じです。
このチェス盤の 2 つの座標間の関係を記述するホモグラフィは、私の matlab コードでは完全に正しいものです。
問題は、異なる画像座標で同じ結果を達成できなかった理由です。たとえば、黒の画像座標を使用する場合、主点は画像の中心にある必要があります。赤の画像座標を使用すると、主点も画像の中心にあるはずです。
異なる座標でチェス盤を記述すると、異なるホモグラフィ行列になることはわかっていますが、これは、異なる/対応する座標 (黒または赤) で定義された同じ「主点」を説明する必要があります。
誰かがこの分野に精通している場合は、私を助けてください。私が何を意味するのかを理解し、将来私のように混乱する可能性のある人々を助けるために、私の matlab コードをアップロードすることもできます!
アレックス
PS、固有行列を推定するには、論文によると、少なくとも 2 つの画像が必要です。
matrix - カメラのキャリブレーション: 射影行列
私はしばらくの間 3D スキャナーに取り組んできましたが、続行する前に解決したい射影行列についてまだいくつか質問があります。
この行列がカメラ座標系とワールド座標系の関係を表しているという事実を理解しています。それでも、すべてのキャリブレーション ソフトウェア パッケージがこのマトリックスを提供する理由がわかりません。ソフトウェアは空間でランダムなワールド座標系を選択し、後で行列を計算しますか?
自分で世界座標系を選択する方がずっと簡単だと思っていました (可能であれば)。私の計画は、オブジェクトが静止した表面上に静止し、カメラとレーザーがオブジェクトの周りを円運動で移動するスキャナーを作成することです。この方法で射影行列を作成できれば、ワールド座標系が静的プラットフォームの中央に適切に配置されます。
よくわからない場合はお知らせください。画像を追加します。
うまくいけば、誰かが私のために少し物事を片付けることができるので、私はいくつかの進歩を遂げることができます:)。
宜しくお願い致します。
opencv - 異なるカメラ (RGB および赤外線) 用の stereoCalibrate
2 つのカメラのキャリブレーションに問題があります。1 つ目は RGB で、2 つ目は赤外線です。解像度が異なります(画像のサイズを変更してトリミングしました)、焦点距離など...
例:
RGB 1920x1080
赤外線 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 に入れます。
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)+u0
とy2=-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) 領域にあるオブジェクトカメラで撮影した画像の左半分の平面に「表示」する必要があります。
誰かが私が誤解したことを指摘できますか?
kinect - Kinect はどのように深度を計算しますか?
ここで少し混乱しています。
Kinect は深度をどのように計算しますか : 私が理解しているのは、
- IR プロジェクターは、IR カメラによって反射されて読み取られるパターンを放ちます。
- これで、IR カメラは特定の深さのパターンを認識します。入力パターンと既知のパターンの違いを利用して、三角形分割を使用して既知の深さを計算します (類似した三角形の比例関係を使用)。
質問 1 : IR プロジェクターと IR カメラの間の距離は考慮されますか? それらは近すぎて考慮できないため、そうではないと思います。
質問 2 : パターンから直接深さを取得しています。disparity map
深度を計算するためにいつ使用しますか?
c++ - 画像の黒い領域が多すぎる OpenCV 修正 C++
OpenCV を使用して、ステレオ システムの調整と調整を行っています。私は収束の目を持つステレオ カメラを持っています。実際には、これらの関数を次の順序で実行しています。
次に、取得したい画像の数についてこれをループします
このブロックの後、これを 2 つと呼びます。
その後:
最後に:
これは基本的に私が行っていることですが、画像に非常に大きな黒い領域があるため、結果は非常に悪いです. 以下に例を示します。
そして、これは私が取得しなければならない修正画像です。これは、カメラから直接修正されたものです。
ご覧のとおり、画像は右側で翻訳されてカットされているように見えます。右側は同じですが、左側で翻訳され、結果はほぼ同じです。
では、どうすれば最後の結果と同様のより良い結果を得ることができますか? 問題はどこだ?追加のデータとして、rms が約 0.4 とあまり良くないことに気付きました。再投影エラーは約 0.2 です。もう少し低くする必要があることはわかっていますが、パターン、照明、照明を変えて何度も試しました。など、キャリブレーション中ですが、私は常に同じ結果、または最悪の場合さえも取ります。