問題タブ [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.
opencv - opencv chessboard を使用したマルチキネクト キャリブレーション
私はopencv2.4.6とkinect sdkを使用してマルチキネクトキャリブレーションを行っています。Kinect から画像データを取得したら、それらを opencv 画像に変換し、いくつかのチュートリアル (RGBDemo など) に従い、次のパイプラインを使用します。
drawChessboardCorners を使用してエラーが見つからないため、コーナーの位置は正しいと思います。これらのすべての手順の後、回転行列と並進ベクトルを取得します。これらをキネクトから取得した点群に変換すると、それらが整列していないことがわかりました。
理由がわからない。画像の順番の問題ではないと思います。どの点群に変換を適用しても、正しい位置合わせができません。私が推測する唯一の理由は、opencv 関数のパラメーターです。
ご清聴ありがとうございました!!!
8-20 編集: 誰も答えてくれませんが、考えられる理由が 1 つあります。ポイント クラウドはピクセルに基づいていますが、opencv から取得したマトリックスはメートルに基づいています。点群をメートルに変更しましたが、これもダメです。私が得たマトリックスはおそらく正しいことがわかりました。したがって、表示機能に何か問題があるのではないかと思います。答えが見つかったら、結論を投稿します。
8-21編集:理由がわかりました。opencvとopenglの違いを間違えました。これで、マトリックスは 2 つの点群を整列できますが、完全ではありません。
opencv - opencv - 膨大なキャリブレーションパターンの生成
外形寸法が約 600 mm x 600 mm のキャリブレーション パターンが必要です。
OpenCV ディストリビューションの docs フォルダーにある python スクリプトを使用しようとしましたが、このサイズの svg は生成されません。エラーメッセージなしで停止し、svg ファイルを書き込みません。
だから私は自分でパターンを作成し、「ルール」を理解したいと思っています:
- 行と列の異なる数を使用する方が良いですか?
- 適切なキャリブレーション パターンを作成するには、いくつの円が必要ですか?
- 外形寸法に対してどの半径を使用すればよいですか?
- 円の間に必要な間隔は?
- 外側の円とパターン全体の境界線の間に必要な間隔は?
このサイズの型紙は印刷できず、印刷代もかかるので、ルールを知っておかないと、いろいろと試すことができません。
ありがとう!
python - CSV から XML への変換
現在、水文モデル (HBV-light) の入力ファイルを外部キャリブレーション ソフトウェア (PEST) と互換性を持たせようとしています。HBV-light では入力ファイルが XML 形式である必要がありますが、PEST ではテキスト ファイルしか読み取れません。私の問題は、PEST によって (CSV 形式で) 書き込まれたパラメーター セットを、HBV-light で読み取ることができる XML ファイルに自動的に変換するスクリプトの作成に関連しています。
PEST で書き込むことができるテキスト ファイルの短い例を次に示します。
そして、これは私がXMLファイルを整理しようとしている方法です:
プログラミングの経験はあまりありませんが、これまでに書いた Python コードを次に示します。
グループ A (具体的には CathmentParameters) を書き込むことはできますが、グループ B セクションは書き込まれません。何をすべきかわからない!
camera-calibration - カメラ キャリブレーション マトリックスの解釈
http://www.cvg.reading.ac.uk/PETS2001/pets2001-cameracalib.html#dataset2にあるカメラのキャリブレーション データの解釈に問題があり、 誰か助けてくれるかどうか疑問に思っていました。基本的に私はこの例を理解しており、3D オブジェクトの 2D 画像座標を計算しようとすると正しく動作します。私が取得した 2D 座標は、画像の境界内にあります。これは良いことです。
問題は、作業を他のマトリックスに適用しようとするときです。全体像を把握するために、これらのキャリブレーション マトリックスは、次の場所にあるビデオに適用されます。
たとえば、Dataset 2 Camera 2 の変換行列を考えてみます。
データセットの上部にある指示に従って、最初のステップは行列を反転して取得することです。
次に、ワールド座標の点 x = (0,0,0) を例にとります。
答えは画像の境界内にあるはずなので、この答えは明らかに間違っています。実際、この情報を自分のプログラムで使用しようとしたところ、3D ワールドの地面上の点が 2D 画像座標に正しく変換されませんでした。
作業を正しく適用する方法について誰かが何かアイデアをいただければ幸いです。
ありがとう、
opencv - OpenCV: 移動する単一カメラの回転行列と並進ベクトル
キャリブレーションされた(固有パラメータ)カメラがあります。後で、オブジェクトから別の写真を撮るために使用する必要があります。それらは、画像のいくつかのポイントを再投影するために使用されます。
重要なステップは、同じオブジェクトの 2 つの画像を使用して、回転行列と平行移動ベクトルを計算することです。私は画像処理の初心者で、その方法がわかりません。任意の情報をいただければ幸いです。
ありがとう!
ios - Apple の iPhone 磁力計のキャリブレーションは正しく機能していますか?
私は現在、現在の態度を非常に正確に判断する必要がある iPhone アプリ (iPhone 5、iOS 7、Xcode 5) を開発しています。CMDeviceMotion の「姿勢」は、これらの要件を満たしていません。これは、Apple のセンサー フュージョン アルゴリズムがジャイロスコープに大きく依存しているように思われるためです (私の経験では)。そのため、裸のセンサー データを読み取ることにし、後でそれをセンサー フュージョン アルゴリズム内で自分で結合したいと考えました。
磁力計のデータを求める場合、次の 2 つの可能性があります。
CMMotionManager の CMmagnetometerData 経由
Appleが言うCMDeviceMotionのCMCalibratedMagneticField経由
このプロパティによって返される CMCalibratedMagneticField は、デバイス バイアスなしで、デバイス付近の総磁場を示します。CMMagnetometer クラスの MagneticField プロパティとは異なり、これらの値は、地球の磁場に周囲の磁場を加えたものからデバイス バイアスを差し引いたものを反映します。
原則として(2.)はまさに私が欲しいものです。
磁力計のデータが適切に校正されているかどうか、非常に簡単なテストがあります。簡単にするために、自分自身を 2 次元に制限することができます。デバイスが仰向けになっている場合、デバイスが指している方向に関係なく、B_x^2 + B_y^2 の組み合わせは一定でなければなりません。これは、地球の磁場の水平成分にちょうど等しくなければなりません (デバイスの近くに他の磁場がないことを前提としています)。したがって、デバイスを仰向けにして 360 度回転させると、B_x 上の測定データ B_y は円を表示するはずです。詳しくはこちらをご覧ください。
ポイント: CMCalibratedMagneticField のデータは円になりません!
誰かがそれについて説明していますか?または、CMCalibratedMagneticField がどのように発生するかを知っている人はいますか? デバイスの「8 字形」の動きを実行するとき、磁力計は上からのリンクの意味で校正されていますか、または動きは何に適していますか?
ところで。上記のリンクで説明されているように、「8 の形をした」動きで、3 軸を中心にデバイスを反転させないのはなぜですか?
この問題についてご説明いただければ幸いです...ありがとうございます!