OpenCV を使用して、魚眼レンズ付きのカメラを使用して撮影した画像を調整しています。
私が使用している機能は次のとおりです。
findChessboardCorners(...);
キャリブレーション パターンのコーナーを見つけます。cornerSubPix(...);
見つかったコーナーを改良します。fisheye::calibrate(...);
カメラ行列と歪み係数を調整します。fisheye::undistortImage(...);
キャリブレーションから取得したカメラ情報を使用して画像の歪みを解消します。
結果の画像は見栄えが良いように見えますが (直線など)、私の問題は、関数が画像を切り取りすぎていることです。
90 度の角度で 4 台のカメラを使用しているため、これは実際の問題です。側面の大部分が切り取られている場合、画像をつなぎ合わせるために必要なオーバーラップ領域がありません。
の回転ベクトル出力fisheye::estimateNewCameraMatrixForUndistortRectify(...)
は3xN (N はキャリブレーション画像の数) であり、 1x3 または 3x3。R
fisheye::calibrate
fisheye::estimateNewCameraMatrixForUndistortRectify
以下の画像は、私の歪みのない結果の画像と、私が理想的に望む結果の例を示しています。
無歪み:
希望する結果の例: