11

OpenCV を使用して、魚眼レンズ付きのカメラを使用して撮影した画像を調整しています。

私が使用している機能は次のとおりです。

  • findChessboardCorners(...);キャリブレーション パターンのコーナーを見つけます。
  • cornerSubPix(...);見つかったコーナーを改良します。
  • fisheye::calibrate(...);カメラ行列と歪み係数を調整します。
  • fisheye::undistortImage(...);キャリブレーションから取得したカメラ情報を使用して画像の歪みを解消します。

結果の画像は見栄えが良いように見えますが (直線など)、私の問題は、関数が画像を切り取りすぎていることです。

90 度の角度で 4 台のカメラを使用しているため、これは実際の問題です。側面の大部分が切り取られている場合、画像をつなぎ合わせるために必要なオーバーラップ領域がありません。

の回転ベクトル出力fisheye::estimateNewCameraMatrixForUndistortRectify(...)は3xN (N はキャリブレーション画像の数) であり、 1x3 または 3x3。Rfisheye::calibratefisheye::estimateNewCameraMatrixForUndistortRectify

以下の画像は、私の歪みのない結果の画像と、私が理想的に望む結果の例を示しています。

無歪み:

私のゆがみ

希望する結果の例:

求める結果の例

4

5 に答える 5

0

うまくやっています。 を使用getOptimalNewCameraMatrix()して設定newCameraMatrixするだけundistort()です。すべてのピクセルを表示するには、alphaで 1 に設定する必要がありますgetOptimalNewCameraMatrix()

于 2015-12-16T15:57:41.893 に答える