オブジェクト座標に 4 つの同一平面上のポイントと、対応するイメージ ポイント (イメージ プレーン上) があります。カメラに対するオブジェクト プレーンの相対移動と回転を計算したいと考えています。
FindExtrinsicCameraParams2 が解決策になるはずです。しかし、使い方に問題があります。コンパイル時にエラーが表示され続ける
OpenCVでこの関数をうまく使用した人はいますか?? この関数を使用するためのコメントやサンプル コードを教えてください。
ありがとうございました!
オブジェクト座標に 4 つの同一平面上のポイントと、対応するイメージ ポイント (イメージ プレーン上) があります。カメラに対するオブジェクト プレーンの相対移動と回転を計算したいと考えています。
FindExtrinsicCameraParams2 が解決策になるはずです。しかし、使い方に問題があります。コンパイル時にエラーが表示され続ける
OpenCVでこの関数をうまく使用した人はいますか?? この関数を使用するためのコメントやサンプル コードを教えてください。
ありがとうございました!
私は OpenCV 関数FindHomography()を使用します。より単純で、ホモグラフィから外部パラメーターに簡単に変換できるからです。
このように関数を呼び出す必要があります
FindHomography(srcPoints, dstPoints, H, method, ransacReprojThreshold=3.0, status=None)
メソッドは CV_RANSAC です。4 点以上に合格した場合、RANSAC はモデルを満たすために最適な 4 点セットを選択します。
H でホモグラフィを取得します。それを外部パラメーターに変換する場合は、この投稿で説明することを行う必要があります。
基本的に、外部行列 (ポーズ) は、1 列目、2 列目、4 列目が tp ホモグラフィに等しいです。3 番目の列は、1 番目と 2 番目の列の外積であるため、冗長です。
3D キャリブレーションに関連する OpenCV 関数を数日間テストした後、すべてのエラー、ぎこちない出力数を克服し、findHomography、solvePnP (FindExtrinsicCameraParams の新しいバージョン)、および cvProjectPoints を含むこれらの関数の正しい出力を最終的に取得しました。いくつかのヒントはOpenCV cvProjectPoints2 関数の使用で説明されています。これらのヒントは、この投稿のエラーにも適用されます。具体的には、この投稿では、私の違反はfloat データを CV_64F Mat に渡しています。すべて完了しました。
CalibrateCamera2 を使用できます。
objectPts - 4 つの共面ポイント imagePts - 対応するイメージ ポイント。
このメソッドは、固有行列と歪み係数を計算します。これにより、objectPts が imagePts としてカメラの画像平面にどのように投影されたかがわかります。
1 台のカメラしか使用していないため、ここで計算する外部パラメーターはありません。2 台のカメラを使用した場合、StereoCalibrate を使用して Extrinsic Matrix を計算しようとしています。
アンクル